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

没有表的映射关联的休眠条件投影

边桐
2023-03-14
问题内容

我有2张桌子说

表1和表2

现在Table1有3列,分别是t1,t2,t3,而Table2有2列t4和t5。

我必须通过联接从两个表中获取数据,但是注释或xml中的两个表之间没有映射的关联。

现在的主要问题是我必须使用hibernate投影来从两个表中获取选定的列,例如,表1中的t1,t2和表2中的t4。

我浏览了互联网,但是找到了与关联表相关的示例。

很高兴就此有任何指导。


问题答案:

是的,这在Hibernate中 受支持 。这里唯一的事情是我们必须使用 HQL

  • 16.2。from子句 (引用:)

可能会出现多个类,从而导致笛卡尔积或“交叉”联接。

from Formula, Parameter
from Formula as form, Parameter as param

因此,在我们的情况下:

session
   .createQuery("SELECT t1.prop1, t1.prop2, t1.prop3 "
              + "       t2.prop4, t2.prop5 "
              + " FROM Entity1 AS t1, Entity2 As t2 " +
              // if there is some relation - unmapped
              + " WHERE t1.someProperty = t2.someProperty "
              + "   AND ... "
              )
   .setMaxResults(10) // we can even page here
   .list()

注意:我使用prop1,prop2和Entity1,Entity2 …来强制感觉这是HQL。 我们在谈论映射的实体,而不是表或列

我们将收到object[]数组的集合…



 类似资料:
  • 问题内容: 我想使用Hibernate的条件api来制定连接两个实体的特定查询。假设我有两个实体,Pet和Owner,拥有者拥有很多宠物,但是关键是关联没有映射到Java批注或xml中。 使用hql,我可以通过在查询中指定联接来选择拥有“ fido”宠物的所有者(而不是将一组宠物添加到owner类)。 可以使用hibernate条件进行相同的操作吗?如果可以,怎么办? 谢谢,J 问题答案: 我的理

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

  • 问题内容: 是否可以配置Hibernate将组件类存储在单独的表中? 请看以下示例: 这映射到一个具有两列和的表。我想要的是将组件的属性映射到名为的表。 我 不 希望做的是配置在本身(它有没有意义的身份之外的实体),所以排除了正常的关联。另外,我无法修改对象模型(它是生成的代码),因此不能向引入ID属性。 这似乎是Hibernate功能上的一个空白- 映射执行“多个类到一个表”,而 执行“一个类到

  • 问题内容: 欢迎, Hibernate映射存在一些问题。 数据库结构: POJO结构: 我想拥有的是TableC Pojo映射中TableB元素的集合,映射键是tableA。 该集合应该是只读的。 映射应为hbm而非注释。 我可能已经以各种可能的方式完成了此操作…我遇到的关闭情况是,当我对一个TableC对象进行操作时,一切都是正确的,但是如果我加载它们的集合,则只有最后一个具有正确的集合集。 更

  • 问题内容: 我有一个带有一个字段的表,该字段可以根据说明符的值(Project,TimeKeep或CostCenter)指向其他3个表之一中的外键。通常这是通过子类实现的,我想知道是否有下面将工作。 请注意,子类名是相同的父类和noteObject属性映射到java.lang.Object类型的实例变量 ,所以应该接受一个项目,TimeKeep或CostCenter对象,只要我们投来正确的类型,h

  • 问题内容: 有人可以解释在xml映射文件中使用逆函数的方法吗,我正在阅读本教程,但无法理解在映射文件中的逆函数的用法? 谢谢 问题答案: 逆仅决定关系中的哪个实体负责更新数据库以反映关联。 假设一对多的双向关联。代码A和B中有两个类,A包含一组B,B维护对A的引用。在数据库级别,只有一个外键要更新,B的表包含一个到主键的列的A。 在这种情况下,假设我们将inverse = true放在集合侧。这意