【发布时间】:2014-04-15 19:04:27
【问题描述】:
我正在使用 spring-data-jpa 版本 1.5.1.RELEASE 。
我的域名是:
public class MyDomain{
....
....
private String prop1;
private String prop2;
......
......
}
我的 JPA 规范是:
public final class MyDomainSpecs {
public static Specification<MyDomain> search(final String prop1,final String prop2) {
return new Specification<MyDomain>() {
public Predicate toPredicate(Root<MyDomain> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
// Some tests if prop1 exist .....
Predicate predicate1 = cb.equal(root.get("prop1"), prop1);
Predicate predicate2 = cb.equal(root.get("prop2"), prop2);
return cb.and(predicate1, predicate2);
}
};
}
}
我的仓库:
public interface MyDomainRepository extends JpaRepository<MyDomain, Long>, JpaSpecificationExecutor<MyDomain> {
List<MyDomain> findAll(Specification<MyDomain> spec);
}
一切正常。 但我的需要(对于性能数据库调整)是不返回并从 DB 中选择 MyDomain 的所有字段。
我只需要选择例如树属性 (prop1, prop2, prop3) ,最好是在 DTO Object 中。
我不想将 My List<MyDomain> 转换为 List<MyDto> 因为我正在调整数据库请求。
所以,我没有找到任何方法来使用 spring-data-Jpa 和 Specification 。
有什么想法吗?
谢谢
【问题讨论】:
标签: spring spring-data spring-data-jpa