mlu*_*own 3 java sql hibernate criteria
好的,所以以下查询:
SELECT O.*, P.* FROM ORDERS O, PRODUCT P WHERE
O.ORDER_ID=P.ORDER_ID AND P.ID=’1234’;
Run Code Online (Sandbox Code Playgroud)
可以使用Criteria完成如下:
List ordersAndProducts = session.createCriteria(Order.class)
.setFetchMode(“products”,FetchMode.JOIN)
.add(Restrictions.eq(“id”,”1234”))
.list();
Run Code Online (Sandbox Code Playgroud)
但是这里Criteria.list()返回一个List<Object[]>where Object[0]是a Order并且Object[1]是ProductList中每个元素的a .
但是如何使用Criteria执行以下SQL:
SELECT O.* FROM ORDERS O, PRODUCT P WHERE
O.ORDER_ID=P.ORDER_ID AND P.ID=’1234’;
Run Code Online (Sandbox Code Playgroud)
换句话说,我想Criteria.list()给我一个List<Order>,我不在乎Products.我尝试使用createAlias()而不是setFetchMode()结果是相同的,并且Projections不允许您指定实体,只指定属性.
您可以.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)根据标准使用.
List ordersAndProducts = session.createCriteria(Order.class)
.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
.setFetchMode(“products”,FetchMode.JOIN)
.add(Restrictions.eq(“id”,”1234”))
.list();
Run Code Online (Sandbox Code Playgroud)
现在您使用急切加载的产品检索所有订单.
| 归档时间: |
|
| 查看次数: |
2873 次 |
| 最近记录: |