@TableField(exist = false)
是 MyBatis Plus 中的注解,用于标记实体类中的字段是否映射到数据库表中的字段。在这个注解中,exist
属性默认为 true
,表示该字段在数据库表中存在。而当设置为 false
时,表示该字段不会映射到数据库表中的字段。
通常情况下,@TableField
注解用于实体类中的非持久化字段,例如计算字段、临时字段或者与数据库表中的字段无关的字段。这样的字段不会保存到数据库中,但可以在实体类中使用。
例如,假设我们有一个 User
实体类,其中包含一个 fullName
字段,但数据库表中只有 firstName
和 lastName
两个字段。我们可以使用 @TableField(exist = false)
注解来标记 fullName
字段,表示它不会映射到数据库表中。
@TableField(exist = false)@DateTimeFormat(pattern = "yyyy-MM-dd")
这种生成的跟数据库不对应的字段,可以接前端数据,返回数据,用这个数据作为sql的条件.
案例:接收的String转日期。查询日期区间。
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;@Data
public 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)@DateTimeFormat(pattern = "yyyy-MM-dd")private Date startDate;@TableField(exist = false)@DateTimeFormat(pattern = "yyyy-MM-dd")private Date endDate;
}
Page<ExFeedback> exFeedbackPage = exFeedbackMapper.selectPage(new Page<>(pageable.getPageNumber(), pageable.getPageSize()),new LambdaQueryWrapper<ExFeedback>()// 根据id 查询.like(!Objects.isNull(exFeedback.getId()), ExFeedback::getId, exFeedback.getId())// 根据内容分类进行查询.like(!Objects.isNull(exFeedback.getFeedbackType()), ExFeedback::getFeedbackType, exFeedback.getFeedbackType())// 查询日期区间.between((!Objects.isNull(exFeedback.getStartDate()) && !Objects.isNull(exFeedback.getEndDate())),ExFeedback::getCreateTime,exFeedback.getStartDate(),exFeedback.getEndDate()));