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

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

凤高澹
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中使用,但不能使用HibernateCriteria API。



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

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

  • 我正在使用Hibernate标准和投影来获得不同的值,如下所示: 我正在使用带有投影的结果转换器来获取不同值的列表

  • 但是如果可能的话,我想避免这种情况,因为它迫使我定义n个构造函数,为我在投影中想要的n个字段组合定义n个构造函数。

  • 我需要创建一个JPA投影,该投影将从中提取所有记录,并包括一个从中提取的记录计数。 下面是映射的四个实体及其关系: (ManyToOne)(OneToMany)(OneToMany) 在SQL中,这可以通过简单的内联select语句轻松地解决。在JPA投影中,我试图做到以下几点。 在上面的代码中,投影在Entity1上。当我添加Entity4时,它会抛出异常。下面的代码起作用。

  • 我正在考虑使用DTO投影--我有两个具有一对多关系的实体(EntityOne的一个实例链接到EntityTwo的多个实例),我希望将结果作为一个新的DTO对象返回--我目前正在尝试的是: 其中MyDtoObject如下所示: 但是,这带来的MyDtoObjects比预期的要多得多,而且看起来每个对象都只包含一个entityTwo对象,而不是集合。 如何指示queryDSL创建具有多个entityT