java的exists_java – 具有exists子句的hibernate标准

本文介绍了一个使用Hibernate Criteria API实现SQL EXISTS子查询的例子。具体演示了如何通过子查询找到包含特定尺寸披萨的所有订单。

我认为这个链接可以是有用的:

http://mikedesjardins.net/2008/09/22/hibernate-criteria-subqueries-exists/

它包含以下关于create n如何存在条件的示例:

“您真正想要做的是获得所有披萨订单,其中存在相关的小比萨饼,换句话说,您尝试仿效的SQL查询是

SELECT *

FROM PIZZA_ORDER

WHERE EXISTS (SELECT 1

FROM PIZZA

WHERE PIZZA.pizza_size_id = 1

AND PIZZA.pizza_order_id = PIZZA_ORDER.pizza_order_id)

你这样做的方式是使用“存在”子查询,如下所示:

Criteria criteria = Criteria.forClass(PizzaOrder.class,"pizzaOrder");

DetachedCriteria sizeCriteria = DetachedCriteria.forClass(Pizza.class,"pizza");

sizeCriteria.add("pizza_size_id",1);

sizeCriteria.add(Property.forName("pizza.pizza_order_id").eqProperty("pizzaOrder.pizza_order_id"));

criteria.add(Subqueries.exists(sizeCriteria.setProjection(Projections.property("pizza.id"))));

List ordersWithOneSmallPizza = criteria.list();

而瞧,结果会包含两个PizzaOrders!“

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值