我有两个表,比如
表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[]
阵列的集合。。。