|
spring data jpa提供了多种查询方式,如下:
方法名称查询 继承Repository接口
测试代码 方法名称中支持的关键字(官方文档提供) 使用JPA命名查询
在User实体中定义jpql(类似于hql) jpql(百度百科) 继承JpaRepository接口
测试 使用@Query查询 和命名查询不同的是,将jpql写到了 dao 方法上,感觉这样代码可读性高,移植性不高。
测试 排序 dao 测试
命名参数 SpEl表达式 根据示例查询 根据规格查询 继承JpaSpecificationExecutor接口 这种方式的更加适用于表单查询,从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查询。
你喜欢哪一种?
|
|