ОК, следующий запрос:
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()
, но результаты остались прежними, и проекции не позволяют вам указывать сущность, только свойство.