spring data JPA 提供了多种查询方式,如下:
方法名称查询
测试代码
使用JPA命名查询
在User实体中定义jpql(类似于 hql )
测试
使用@Query查询
和命名查询不同的是,将jpql写到了 dao 方法上,感觉这样代码可读性高,移植性不高。
测试
排序
命名参数
SpEl表达式
根据示例查询
根据规格查询
这种方式的更加适用于表单查询,从web层指定查询条件,代码写好后,如果要修改查询条件,只需要改web层代码,不需要改service 或者 dao层代码。
本地sql查询
分页查询
sql输出:
Hibernate : select user0_.id as id1_0_, user0_.name as name2_0_ from User user0_ where user0_.name=? limit ?, ?
Hibernate: select count(user0_.id) as col_0_0_ from User user0_ where user0_.name=?
好了,以上就是spring data jpa提供的 主要 查询方式,其中个人还是比较钟爱 方法名称查询,@Query查询。
你喜欢哪一种?