5

Spring MVC/Spring Data/Mongo DB アプリケーションがあります。春のデータドキュメントに従って環境をセットアップしましたが、リポジトリは正常に動作します(述語を使用してクエリを実行できます)

プロジェクションを作成しながら(Spring DataとQueryDSLを使用して)タイプセーフなクエリを実行できるかどうか疑問に思っていました(非常に大きなドキュメントのいくつかのフィールドのみが必要です)。

QueryDSL ドキュメントには Hibernate の例が示されていますが、すべてのモジュールで実行できると記載されていますQueryDSL Documentation (ただし、Mongo で実行する方法を見つけることができませんでした)

これが休止状態のコードスニペットです

class CustomerDTO {

  @QueryProjection
  public CustomerDTO(long id, String name){
     ...
 }

 QCustomer customer = QCustomer.customer;
 JPQLQuery query = new HibernateQuery(session);
 List<CustomerDTO> dtos = qry.from(customer).list(new QCustomerDTO(customer.id,    customer.name));     

何か案は ?

4

2 に答える 2

2

これは現在サポートされていません。問題トラッカーにチケットを追加してください。

Querydsl の Lucene および Mongodb モジュールは、クエリ ルートからの直接的な射影のみをサポートしますが、カスタムの射影については何かを理解することができます。

于 2012-07-27T14:59:09.933 に答える
0

私はちょうどこのような投影を構築しました:

Criteria c1 = Criteria.where("field.name").is("val")
Criteria projection = Criteria.where("field").is(1)
BasicQuery query = new BasicQuery(c1.getCriteriaObject(), projection.getCriteriaObject())
于 2013-08-29T19:09:18.167 に答える