【发布时间】:2011-05-21 14:32:58
【问题描述】:
好的,所以下面的查询:
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。
但是如何使用 Criteria 执行以下 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() 但结果是相同的,并且 Projections 不允许您指定实体,只能指定属性。
【问题讨论】:
标签: java sql hibernate criteria