当前位置: 首页 > 面试题库 >

带有条件子句的休眠条件

颜志业
2023-03-14
问题内容

对于似乎很简单的问题,我找不到解决方案。假设有2种实体类:

class A {
   Set<B> bs;
}

class B {
   String text;
}

如何创建一个标准查询以返回包含至少一个满足给定条件(例如b.text =’condition’)的B实体的所有A?


问题答案:

我认为此链接可能很有用:http : //mikedesjardins.net/2008/09/22/hibernate-criteria-
subqueries-exists/

它包含以下有关如何创建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<pizzaOrder> ordersWithOneSmallPizza = criteria.list();

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



 类似资料:
  • 问题内容: 我需要使用detachedCriteria进行此SQL查询: 这个想法是从不属于用户的游戏中获取ID。我尝试了与detachedCriteria类似的10种不同方法,但得到了“未知实体:null” MappingException代码应类似于: 还设置投影以仅返回游戏的ID。 有任何想法吗?我认为Hibernate在加入没有别名的查询时会遇到一些麻烦。添加别名是可行的,但结果是完全错误

  • 问题内容: 我正在尝试做这样的事情,但使用代替: 用户是与联接表UserDomain 有关系的实体。这里的重点只是找到链接到具有id =“ XXX”的用户。 似乎应该很简单…但是到目前为止我还没有运气找到任何有用的文档。 问题答案: 我终于找到了。事实证明,这毕竟并不难……一旦您知道! 是的,有人盯着我看Javadoc:http : //www.dil.univ- mrs.fr/~massat/d

  • 问题内容: 在我当前的项目中,我遇到了使用hibernate条件查询获取实体的问题。我有以下实体: 教授,其中包含学生名单 学生,其中包含作业列表。 作业,其中包含分配到的学生的ID。 现在,我想获得与教授有关的所有作业,即教授分配给他的学生的所有作业。 此查询显示我要在条件查询中实现的内容。 如何使用hibernate条件API实施此查询? 问题答案: 假设您的表格是这样的: 使用别名的简单示例

  • 问题内容: 嗨,我想使用条件编写查询:必须使用条件创建以下查询: “从S2中选择不同的(s2Taxper),其中s2Tc =‘601’并且s2Txcd!=” 提前致谢 问题答案:

  • 问题内容: 使用hibernate标准,我想选择一个对象,并将其与对象的oneToMany列表关联。我想通过此列表进行分页,避免出现可怕的hibernaten + 1选择问题 这是一个有效的解决方案,需要10次父级访问11次数据库。 这是一个仅执行一个sql语句(hurray)但无法处理分页的解决方案,即在父对象Mother(boo)上setMaxResults和setFirstResult不正确

  • 问题内容: 是否可以使用hibernatecritiria api创建“选择输入”查询? 示例:我有两个1:n关系中的表,公司和部门 问题答案: 您可以使用此DetachedCriteria