1.多条件查询
多条件查询可按照我写的Spring Data Jpa 快速上手(二) jpa命名规则 与 Jpql、Sql
通过命名完成多条件查询,多个条件之间用And连接例子如下:
public interface UserEntityRepository extends CrudRepository<UserEntity,Integer> {
// 多条件查询的命名规则
// findBy + 属性名称 + “查询方式” + “多条件的连接符(and | or)” + 属性名称 + 查询方式
public List<UserEntity> findByEmailLikeAndNameLike(String email, String name);
}
或者直接使用jpql,例子如下:
// JPQL多条件查询
@Query(value = "from UserEntity where name like :name and email like :email")
public List<UserEntity> findByNameAndEmailJpql(String name, String email);
2.动态查询
动态查询指的是:查询条件可能发生变化,今天查询条件为123,明天查询条件为234,需要对这种情况进行处理。
2.1 jpql动态查询
此处建议直接使用SQL(即nativeQuery = true)进行查询
// 动态查询
@Query(value = "select * from user " +
"WHERE IF(:id IS NULL || :id = '', TRUE, user.id = :id) " +
"AND IF (:name IS NULL || :name = '', TRUE, user.name = :name) " +
"AND IF (:email IS NULL || :email = '', TRUE, user.email = :email) ",nativeQuery = true)
public List<UserEntity> dynamicQueryEntity(Integer id, String name, String email)

本文介绍了Spring Data JPA中如何实现多条件查询、动态查询以及分页排序。通过命名规则和JPQL可以方便地进行多条件查询。对于动态查询,建议使用JPQL配合SQL进行,以避免可能出现的中文乱码问题。Specification接口可用于复杂和动态的查询,包括排序和过滤条件。同时,利用PageRequest进行分页操作,实现灵活的分页和排序功能。
最低0.47元/天 解锁文章
758

被折叠的 条评论
为什么被折叠?



