【发布时间】:2016-09-08 18:46:39
【问题描述】:
我已经实现了 Spring Data JPA 并使用 Querydsl 作为搜索条件。春季文档中给出的更改很少,效果很好。
下面给出了我的 REST 控制器方法
@RequestMapping(value = "/testdsl", method = RequestMethod.GET)
Iterable<User> index(
@QuerydslPredicate(root = User.class) Predicate predicate)
{
return userRepository.findAll(predicate);
}
下面给出了存储库,注释方法很好地为我提供了投影对象。
public interface UserRepository extends CrudRepository<User, Integer>,
QueryDslPredicateExecutor<User>, QuerydslBinderCustomizer<QUser>
{
//Collection<OnlyName> findAllProjectedBy();
//OnlyName findProjectedById(Integer id);
@Override
default public void customize(QuerydslBindings bindings, QUser root)
{
bindings.bind(String.class)
.first((StringPath path, String value) -> path.containsIgnoreCase(value));
}
}
然后我实现了这个投影,我得到了作为响应返回的整个实体类的一个子集。
public interface IUserProjection {
//...all required getters..
}
现在我希望我的 Querydsl 返回这些投影对象。 我们有这种组合的样本吗?我正在使用 spring boot 1.4.0.RELEASE
【问题讨论】:
标签: spring-data spring-data-jpa projection querydsl