OK:次のようにHibernate Criteria - 結合結果を単一のエンティティタイプに制限する方法?
SELECT O.*, P.* FROM ORDERS O, PRODUCT P WHERE
O.ORDER_ID=P.ORDER_ID AND P.ID=’1234’;
が基準で行うことができる。
List ordersAndProducts = session.createCriteria(Order.class)
.setFetchMode(“products”,FetchMode.JOIN)
.add(Restrictions.eq(“id”,”1234”))
.list();
が、ここCriteria.list()
はObject[0]
がOrder
とObject[1]
各要素のProduct
あるList<Object[]>
を返しますリスト内の
しかし、どのように、私は基準では、次のSQL実行できます。つまり
SELECT O.* FROM ORDERS O, PRODUCT P WHERE
O.ORDER_ID=P.ORDER_ID AND P.ID=’1234’;
を、私はCriteria.list()
が私にList<Order>
を与えたいと思う、私はProducts
気にしないでください。私はsetFetchMode()
の代わりにcreateAlias()
を使用しようとしましたが、結果は同じであり、投影はエンティティを指定することはできません。
ありがとうございます!私はResultTransformerを使うのは方法だろうと思っていましたが、むしろ不透明なドキュメントは、どちらを使うべきかを知る上であまり役に立ちませんでした。 – mluisbrown
nice回答(geht doch ... :-)) –
setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)についての詳しい説明はどこにありますか? – jhegedus