代码拉取完成,页面将自动刷新
新特性
//指定所有联结
studentMapper.findByCriteria(p -> p.selects("*, classs*").joinMode(JoinMode.LEFT_JOIN))
//sql:SELECT ... FROM `student` a LEFT JOIN `class` b ON (a.`classId` = b.`id`)
//指定关联实体的联结方式
studentMapper.findByCriteria(p -> p.selects("*, classs*").joinMode("classs", JoinMode.LEFT_JOIN))
andP(Consumer<Predicate> predicate);
orP(Consumer<Predicate> predicate);
notP(Consumer<Predicate> predicate);
v1.3.2+v1.3.1
1、@Filler注解增加fillMode参数,设置自动填充的场景
原是只有属性值为null时才会调用supplier获得值进行填充,现在可以设置fillMode=FillMode.ANY,属性有没值都会被填充
2、使用实体类的子类插入、更新时,也可以自动填充了
3、Criteria查询增加distinct方法,查询去重
findByCriteria(p -> p.distinct())
4、对Criteria查询的isNull、notNull方法重载,增加accept入参方法,判断条件是否可以应用
findByCriteria(p -> p.isNull(true/false, "userName"))
//查询关联实体所有数据
List<Classs> list = classMapper.findByCriteria(p -> p.select("*","studentList*").eq("id", 1L));
//结果:{"id": 1, "name":"一年级",..., studentList: [{"id": 1, "name":"张三", ...},{"id": 2, "name":"李四", ...}]}
//查询关联实体部分属性
List<Classs> list = classMapper.findByCriteria(p -> p.select("*","studentListId", "studentListName").eq("id", 1L));
//更新学生名为王二柱
int effect = studentMapper.updateAttrByCriteria("name", "王二柱", p -> p.eq('id', 1L))
//或使用LambdaCriteria模式
int effect = studentMapper.updateAttrByLambdaCriteria(Student::getName, "王二柱", p -> p.eq(Student::getId, 1L))
增加自定义短配置注解功能
使用@SnowflakeId注解在主键上,将会在insert时自动使用snowflakeId实现
使用@CreateTime注解在日期属性上,将会在insert时自动使用当前日期
这些注解相当于一个配置别名,开发者可以自定义自己的别名使用。内置的别名注解及自定义方式见readme文档。
typeHandler声明支持
现在可在@AttributeOptions上声明字段typeHandler以及jdbcType
增加通用统计查询接口,增加统计查询创建器
修复: