分类: Spring Data

Spring Data JPA 通过 Query DSL查询数据

昨天写 JPA的查询方式,里面关于QueryDSL的部分没有写,当时因为一直报错,现在错误解决了,补上 Spring Data JPA 通过 Query DSL 查询的实现。另2篇:Spring Data JPA 的查询方式You need to run build with JDK or have tools.jar on the classpathpom<dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-apt</artifactId></dependency><dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-jpa</artifactId></dependency><dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.7</version> <scope>system</scope> <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath></dependency>官网和一些其他示例并没有提及tools,但没有这个会报错的,IDE里面就报了。除了上面的配置还要添加构建插件

Spring Data JPA 分页查询

Spring Data JPA 自带了分页功能,分页功能有2个查询,分别是:查询总记录数;根据每页显示数量和起始位置查询一页数据;查询总记录数的几种方式1、用Spring Data自带的方法查询//没有参数,返回对应类型的所有记录数,这里为什么没说返回整张表的记录数?因为有时候可以多个实体共用一个表。org.springframework.data.repository.CrudRepositorylong count();//下面2个是带条件查询总记录数的方法org.springframework.data.repository.query.QueryByExampleExecutor<S extends T> long count(Example<S> example);org.springframework.data.jpa.repository.JpaSpecificationExecutorlong count(Specification<T> spec);

Spring Data JPA 多条件查询

Spring Data JPA 查询很方便,但做搜索功能时,条件比较多,而且条件可输入可不输入,这时候就不能用方法命名的方式查询,可以自己写JPQL,但条件多了简直就是作死,以前写过下面的代码://条件必填SELECT * FROM UserModel AS u WHERE u.sex = :sex AND u.age = :age//条件可选查询SELECT * FROM UserModel AS u WHERE (u.sex = :sex OR :sex == null) AND (u.age = :age OR :age == null)