首页 > 其他 > 详细

MP的常用注解(Entity)

时间:2020-02-29 18:32:34      阅读:167      评论:0      收藏:0      [点我收藏+]

1、表某个字段不需要查询返回时,可以使用以下属性,默认为true

如果使用entity来接收返回结果,还是会以test=null返回,如果以Map来接收就不会返回

@TableField(select = false)
private Integer test;

 

 

2、实体类某个变量并不对应表的字段时,可以使用以下属性,默认为true

@TableField(exist = false)
private Integer test;

 

 

3、指定表名,这样实体类名字就不必一一对应表名

@TableName("mytest_stu")
public class Stu implements Serializable {

 

 

4、MP默认实体类的id属性对应表的主键但是如果主键不叫id,且还想MP帮我们实现主键策略自动填充,那么只能使用注解指定主键

@TableId()
private String stuId;

 

 

5、也可以直接指定表的字段名

@TableField(value = "test")
private Integer testNum;

 

 

6、实例化条件构造器时,是可以传入实体entity的,默认会将entity的属性转为以“=”转为条件

Stu test = new Stu();
test.setStuName("小明");
LambdaQueryWrapper<Stu> wrapperTest1 = new LambdaQueryWrapper<>(test);
LambdaQueryWrapper<Stu> wrapperTest2 = Wrappers.lambdaQuery(test)

如上,在实例化条件构造器时,wrapperTest1和wrapperTest2等都会将条件转为 (表字段)stu_name = ‘小明‘

如果不想以 = 来拼接,可以使用以下注解

@TableField(condition = SqlCondition.LIKE)
private String stuName;

下次使用实体类来构造参数时, 条件就会变成 stu_name like ‘%小明%‘

我们也可以打开SqlCondition看看官方已经设定好的几种条件

public class SqlCondition {
    public static final String EQUAL = "%s=#{%s}";
    public static final String NOT_EQUAL = "%s&lt;&gt;#{%s}";
    public static final String LIKE = "%s LIKE CONCAT(‘%%‘,#{%s},‘%%‘)";
    public static final String LIKE_LEFT = "%s LIKE CONCAT(‘%%‘,#{%s})";
    public static final String LIKE_RIGHT = "%s LIKE CONCAT(#{%s},‘%%‘)";
    public SqlCondition() {
    }
}

当上述都不满足我们的要求时,我们也可以模拟上面的写法,自行百度sql的各类符号转码

@TableField(condition = "%s &gt; #{%s}")
private Float score;

这样,下次使用entity实例化条件构造器时,条件就会变成  score > XX

 

 

 

 

 

MP的常用注解(Entity)

原文:https://www.cnblogs.com/fanghaoxin/p/12384382.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!