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



我有两个表,比如

表1和表2

现在,表1有3列,如t1、t2、t3,表2有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[]阵列的集合。。。

最新更新