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,