标签:integer 个人观点 模糊 find 就是 字段 参考 并且 HERE
记录是为了更好的成长!
接触springDataJpa以后, 感觉用起来还是可以的,习惯了mybatis的灵活,刚入手会觉得有难度,这里不说springdatajpa是什么,怎么用,主要分享心得
条件查询
按jpa的规则在方法中拼接字段属性即可
//按姓名查询
List<Entity> findByuserNameEquals(String name);
//按用户和密码查询
List<Entity> findByuserNameEqualsAndpassWordEquals(String userName,String passwrod);
//查一条记录
getOne();
条件和分页查询
//分页,返回的page实例中就带有分页的所有信息,使用很方便
Pages<Entity> findAll(Pageable pageable);
//按条件并且分页查询,分页查询需要在方法中置入Pageable pageable,pageable中还可以设置排序规则
Pages<Entity> findByTypeEquals(Integer type, Pageable pageable);
在使用分页查询时注意返回值的类型,只能是page,因为page中带有分页信息,返回List
是取不到分页信息 的,详细的内容看源码就会明白。
贴一个实际的需求查询(按条件并分页查询某个时间段内的数据)
Pages<Entity> findBycreateTimeAfterAndStatusEquals(String createTime,Integer status,Pageable pageable);
//JPA打印的sql
select * from user where createTime > '2019-05-16 08:20:53' #参数就是传入的String类型的createTime
开始很纠结比较日期时给JPA到底传什么类型的参数,其实不用麻烦,将JPA执行的sql打印出来,稍加分析就明白了。
模糊查询(like 和 Containing)
//like的使用: 传入的参数需要加% 才可以
Page<Entity> findByuserNameLike(String userName); //这里的参数 userName = “%” + userName + "%";
//Containing 翻译过来就是包含的意思
Page<Entity> findByuserNameContaining(String userName); //这里就可以直接传值,两者小小的区别
//增加和修改都是同一个方法
save(Object obj);
注意修改是需要先查表中全部的数据,在对修改的字段进行set,否则会进行null的insert
删除就是delete开头的方法名了 。
以上内容代表个人观点,仅供参考,不喜勿喷。。。
标签:integer 个人观点 模糊 find 就是 字段 参考 并且 HERE
原文地址:https://www.cnblogs.com/newbest/p/10888836.html