好了,以下查詢: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()
返回List<Object[]>
其中Object[0]
是Order
和Object[1]
是每個元件的Product
在列表中。
但我可怎麼辦下面的SQL與標準:
SELECT O.* FROM ORDERS O, PRODUCT P WHERE
O.ORDER_ID=P.ORDER_ID AND P.ID=’1234’;
換句話說,我想Criteria.list()
給我一個List<Order>
,我不關心Products
。我已經嘗試使用createAlias()
而不是setFetchMode()
,但結果相同,並且預測不會讓您指定實體,而僅指定屬性。
謝謝!我懷疑使用ResultTransformer會是一種方式,但相當不透明的文檔並不能幫助您知道使用哪一個。 – mluisbrown 2010-12-07 15:33:37
不錯的答案(geht doch ... :-)) – 2010-12-08 14:08:47