7

このクラスをエンティティとしてマッピングしました。Person と呼びましょう。Person には、Address に対する埋め込み/コンポーネントの関係があります。Address オブジェクトを返す Criteria の使用に問題があります。私はこれを試しました:

Criteria.createCriteria(Address.class)

これは機能しません。エンティティを通過する必要があると思いますが、その後、何らかの投影が必要になりますか?

Criteria.createCriteria(Person.class).<<what goes here???>>

提案?

4

2 に答える 2

6

コンポーネントの有効期間はその所有者によって制御されます。それらは関連付けとは見なされません。したがって、クエリからコンポーネントを単独で取得することはできません。ただし、基準で使用することはできます。

「Address」クラスが「Person」内の「address」としてマップされていると仮定すると、次のようなことができます。

Criteria.createCriteria(Person.class)
 .add(Restrictions.eq("address.street", street));
于 2009-09-24T16:19:51.070 に答える
0

これは、休止状態で埋め込みオブジェクトのプロパティを取得または参照する方法です。

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(
                Parent.class,"parent");
criteria.createAlias("embeddedObjectFieldName", "parent.embeddedObjectFieldName");

criteria.setProjection(Projections.projectionList()
                .add(Projections.groupProperty("parent.propertyOne"))
                .add(Projections.max("embeddedObjectFieldName.embeddedobjectproperty")));

上記が明確になることを願っています

于 2013-09-12T15:44:01.943 に答える