簡體   English   中英

使用 Spring JPA 存儲庫和查詢 DSL 的動態投影

[英]Dynamic projection with Spring JPA repository and query DSL

我目前有一個 Spring JPA 存儲庫繼承QuerydslPredicateExecutorJpaRepository

我正在使用 QuerydslPredicateExecutor 中的Page<T> findAll(Predicate predicate, Pageable pageable) QuerydslPredicateExecutor ) 方法,但我想做一個動態投影,就像我們可以用JpaRepository做的一樣(比如<T> List<T> findByName(String name, Class<T> type)例如)。

我試圖添加一個<T> Page<T> findAll(Predicate predicate, Pageable pageable, Class<T> type)

有沒有辦法做到這一點?

有沒有辦法做到這一點?

就在這里。

Spring 數據 JPA 的 2.6 RC1 版本引入了用於按示例查詢、規范和 Querydsl 的流暢 API。 您可以使用它來配置投影。 請注意,僅支持界面投影。

您可以使用這樣的預測:

interface SomeRepository extends CrudRepository, QuerydslPredicateExecutor {}
MyService {

    @Autowired
    SomeRepository repository;

    void doSomething(){

        Page<ProjectionInterface> projections = 
            repository.findBy(
                querydslPredicate,
                q -> q.as(ProjectionInterface.class).page(pageRequest)
            );
        // ...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM