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

从与休眠条件的关系中投影实体

罗昊空
2023-03-14
问题内容

我很难获得标准表达式的结果相关实体对象的列表。我有两个具有多对多关系的对象,例如ObjectA <->
ObjectB,其中ObjectA的单个实例可以绑定到ObjectB的多个实例,而ObjectB的实例可以绑定到ObjectA的多个实例。该关系存储在您的典型联接表中,但是由于遗留原因,对象模型是这样的,因此ObjectB不直接知道它与ObjectA的关系。我正在尝试创建一个条件表达式,以通过连接表对象获取与任何ObjectA相关的所有实例ObjectB,如下所示:

getDetachedCriteria(ObjectAObjectB.class)
.setFetchMode("objectB", FetchMode.JOIN)
.setProjection(Projections.property("objectB"));

但是,这不能按预期方式工作,因为Projection
API似乎仅支持投影标量属性,而不支持实体对象。是否可以通过Projections或其他一些Criteria API指定这种选择类型?


问题答案:

您不能使用Hibernate Criteria API做到这一点。可以在HQL或JPA2 Criteria API中使用,但不能使用Hibernate
Criteria API。



 类似资料:
  • 问题内容: 我很难获得标准表达式的结果相关实体对象的列表。我有两个具有多对多关系的对象,例如ObjectA <-> ObjectB,其中ObjectA的单个实例可以绑定到ObjectB的多个实例,而ObjectB的实例可以绑定到ObjectA的多个实例。该关系存储在您的典型联接表中,但是由于遗留原因,对象模型是这样的,因此ObjectB无法直接知道其与ObjectA的关系。我正在尝试创建一个条件表

  • 作为条件表达式的结果,我很难获得相关实体对象的列表。我有两个具有多对多关系的对象 但是,这并不像预期的那样有效,因为投影API似乎只支持投影标量属性,而不支持投影实体对象。是否可以通过投影或其他标准API指定这种类型的选择?

  • 问题内容: 我有2张桌子说 表1和表2 现在Table1有3列,分别是t1,t2,t3,而Table2有2列t4和t5。 我必须通过联接从两个表中获取数据,但是注释或xml中的两个表之间没有映射的关联。 现在的主要问题是我必须使用hibernate投影来从两个表中获取选定的列,例如,表1中的t1,t2和表2中的t4。 我浏览了互联网,但是找到了与关联表相关的示例。 很高兴就此有任何指导。 问题答案

  • 问题内容: 我不确定如何描述这个问题,所以我认为举个例子是问我问题的最好方法: 我有两个表具有多对多关系: 驾驶员许可证<->许可证类别 LicenceClass是诸如“汽车”,“摩托车”和“中型刚性”之类的东西。 使用Hibernate Criteria,如何找到同时具有“汽车”和“摩托车” LicenceClasses的所有许可证? 2008年12月11日更新我发现可以使用自定义ResultT

  • 问题内容: 关于以下与Hibernate有关的问题,我几乎看不到任何指针。这涉及到使用具有自身父子关系的单个数据库表来实现继承。例如: 在这里, managerId 列可以为null,或者可以指向 Employee 表的另一行。业务规则要求员工了解他的所有报告人以及他/她的经理。业务规则还允许行具有为空的 managerId (组织的CEO没有经理)。 我们如何在Hibernate中映射此关系,标

  • 问题内容: 我想使用条件(不是sql查询)从A类获取列表。有可能这样做吗?在这种情况下,投影不起作用。 问题答案: 不幸的是,标准仅允许选择根实体,而不能选择任何连接的实体。因此,如果您的ManyToMany是双向的,它将更加容易。您可以使用等同于 如果这不是一种选择,我认为唯一的方法是使用子查询,从而将等同于 因此,代码如下所示: