0

Grails 2.2.4 を使用して Web アプリケーションを構築していますが、Grails の withCriteria 操作で複雑な問題が発生しています。私は以下のように3つのクラスを持っています:

class Person {
    int id
    String name
    Set<Car> cars = []  // One-to-many relationship
    Company currentCompany // One-to-one relationship
}

class Car {
    int id
    String manufacturer
    String brand
    double price
    Person owner
}

class Company {
    int id
    String name
    Set<Person> employees = []
}

そして今、次のような関連データとともに、ルートクラスとして Person からデータをクエリしたいと思います。

List result = Person.withCriteria {
    projections {
        property('id')
        property('name')
        createAlias('cars', 'c', CriteriaSpecification.LEFT_JOIN)
        property('c.brand')
        createAlias('currentCompany', 'com', CriteriaSpecification.LEFT_JOIN)
        property('com.name')
    }
        lt('id', 10L)
        resultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
}

そして問題は、結果データを人のリストに深く変換して、すべての要素にそのデータがクラス構造として含まれていることを確認する方法がわからないことです。私は多くの方法を試しました

    resultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
    resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP)
    resultTransformer(CriteriaSpecification.aliasToBean(Person.class))  

しかし、私が期待したように何も機能しませんでした。
Grails 2.2.4 はこれをサポートしていますか? はいの場合、正しい構文は何ですか?
どうもありがとう。

4

1 に答える 1

0

実際、多くの記事、Grails のドキュメント、さらにはそのソース コードを調査した結果、これを行う最善の方法は、自分の目的のためにカスタム トランスフォーマーを実装することだと思います。ここで最も難しいのは、データを関連付けオブジェクトに変換し、それらをルート エンティティ内のコレクションに収集する方法です。そして、私はここに作成しました: http://www.mycodestock.com/code/10333/
私のようなものを必要とするかもしれない皆さんの助けになることを願っています.

于 2014-01-15T17:08:07.870 に答える