Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate条件与exists子句_Java_Hibernate_Criteria - Fatal编程技术网

Java hibernate条件与exists子句

Java hibernate条件与exists子句,java,hibernate,criteria,Java,Hibernate,Criteria,我找不到一个看似容易的问题的解决办法。假设有两个实体类: class A { Set<B> bs; } class B { String text; } A类{ 设置bs; } B类{ 字符串文本; } 如何创建一个条件查询,该查询返回至少包含一个满足给定条件的B实体的所有a(如B.text='condition') 我认为这个链接很有用: 它包含以下有关如何创建n个条件的示例: “您真正想要做的是获取存在关联小比萨饼的所有比萨饼订单。换句话说,您试图模拟的SQL

我找不到一个看似容易的问题的解决办法。假设有两个实体类:

class A {
   Set<B> bs;
}

class B {
   String text;
}
A类{
设置bs;
}
B类{
字符串文本;
}

如何创建一个条件查询,该查询返回至少包含一个满足给定条件的B实体的所有a(如B.text='condition')

我认为这个链接很有用:

它包含以下有关如何创建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)
方法是使用“exists”子查询,如下所示:

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<pizzaOrder> ordersWithOneSmallPizza = criteria.list();
Criteria=Criteria.forClass(PizzaOrder.class,“PizzaOrder”);
DetachedCriteria=DetachedCriteria.forClass(Pizza.class,“Pizza”);
添加(“比萨大小id”,1);
添加(Property.forName(“pizza.pizza\u order\u id”).eqProperty(“pizzaOrder.pizza\u order\u id”);
add(subquerys.exists(sizeciteria.setProjection(Projections.property(“pizza.id”)));
List ordersWithOneSmallPizza=criteria.List();

瞧,结果将包含两个PizzaOrders!”

你能编辑你的帖子以包含相关的位吗?这样当链接关闭时,答案仍然有价值?
Property.forName(“pizza.pizza\u order\u id”).eqProperty(“pizzaOrder.pizza\u order\u id”)
pizza\u order\u id是类属性名还是表列名?Hibernate 5.0.7我看不到方法
sizeLiteria.add(String,int)