java实体类中,不对应数据库的实体类字段

打印 上一主题 下一主题

主题 669|帖子 669|积分 2007

@TableField(exist = false) 是 MyBatis Plus 中的注解,用于标记录体类中的字段是否映射到数据库表中的字段。在这个注解中,exist 属性默以为 true,表现该字段在数据库表中存在。而当设置为 false 时,表现该字段不会映射到数据库表中的字段。
通常环境下,@TableField 注解用于实体类中的非长期化字段,比方计算字段、暂时字段大概与数据库表中的字段无关的字段。如许的字段不会保存到数据库中,但可以在实体类中使用。
比方,假设我们有一个 User 实体类,其中包罗一个 fullName 字段,但数据库表中只有 firstName 和 lastName 两个字段。我们可以使用 @TableField(exist = false) 注解来标记 fullName 字段,表现它不会映射到数据库表中。
  1.     @TableField(exist = false)
  2.     @DateTimeFormat(pattern = "yyyy-MM-dd")
复制代码
 这种天生的跟数据库不对应的字段,可以接前端数据,返回数据,用这个数据作为sql的条件.
案例:接收的String转日期。查询日期区间。
  1. package co.yixiang.exam.entity;import co.yixiang.domain.BaseDomain;import com.baomidou.mybatisplus.annotation.TableField;import lombok.Data;import org.springframework.format.annotation.DateTimeFormat;import java.time.LocalDateTime;import java.util.Date;import java.util.List;@Datapublic class ExFeedback extends BaseDomain {    // 反馈ID(自增)    private Integer id;    // 分类推荐(bug,功能发起)    private String feedbackType;    // 昵称    private String feedbackName;    // 反馈内容    private String feedbackContent;    // 接洽方式    private String feedbackContactInfo;    // 提交时间    private LocalDateTime feedbackCommit;    // 创建人    private String createBy;    // 修改人    private String updateBy;    @TableField(exist = false)    private List<ExImg> exImg;    @TableField(exist = false)
  2.     @DateTimeFormat(pattern = "yyyy-MM-dd")    private Date startDate;    @TableField(exist = false)
  3.     @DateTimeFormat(pattern = "yyyy-MM-dd")    private Date endDate;}
复制代码
 
  1.      Page<ExFeedback> exFeedbackPage = exFeedbackMapper.selectPage(
  2.                 new Page<>(pageable.getPageNumber(), pageable.getPageSize()),
  3.                 new LambdaQueryWrapper<ExFeedback>()
  4.                         // 根据id 查询
  5.                         .like(!Objects.isNull(exFeedback.getId()), ExFeedback::getId, exFeedback.getId())
  6.                         // 根据内容分类进行查询
  7.                         .like(!Objects.isNull(exFeedback.getFeedbackType()), ExFeedback::getFeedbackType, exFeedback.getFeedbackType())
  8.                         // 查询日期区间
  9.                         .between(
  10.                                 (!Objects.isNull(exFeedback.getStartDate()) && !Objects.isNull(exFeedback.getEndDate())),
  11.                                 ExFeedback::getCreateTime,
  12.                                 exFeedback.getStartDate(),
  13.                                 exFeedback.getEndDate()
  14.                         )
  15.         );
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

商道如狼道

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表