我尝试执行一个具有多个内部联接的查询,并从这些表中获取不同的列。
例如:
Table-1
Col1, Col2........Col10
Table-2
Col1....Col5
Table-3
Col1...............Col20
内部联接
Select tb1.col1, tb1.col2, tb1.col3, tb2.col1, tb3.col1, tb.col2
inner join
tb1
inner join
tb2
inner join
tb3
where cond1 &cond2
查询使用hibernate执行正常但我希望将结果集映射到Java POJO对象。如何构建映射对象,是否可以使用任何工具为此查询生成映射对象。
我可以手动完成,但输出中有40列......
答案 0 :(得分:0)
假设三个表对应模型中的三个对象。然后,您可以考虑这三个对象彼此关联的方式以及这些对象中的哪一个将成为关系的自然所有者。因此,如果您认为对象A具有对象B的集合,该对象具有对象C的集合,那么您可以说对象A拥有该关系。
然后,您希望查询返回对象A的列表。
所以你可以写:
"SELECT a FROM A a JOIN a.bs b JOIN b.cs c WHERE a.attr = val and b.attr2 = val2"
由于您的A集合可以访问所有B和所有C,因此应满足您的需求。