
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查询。
你喜欢哪一种?