【问题标题】:Hibernate mapping Object for Inner join query用于内部连接查询的 Hibernate 映射对象
【发布时间】:2014-11-03 19:23:27
【问题描述】:

我正在尝试执行具有多个内部连接的查询并从这些表中获取不同的列。

例如:

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 列...

【问题讨论】:

    标签: java mysql hibernate join


    【解决方案1】:

    假设这三个表对应于模型中的三个对象。然后,您可以考虑这三个对象相互关联的方式,以及这些对象中的哪一个将成为关系的自然所有者。因此,如果您认为对象 A 具有对象 B 的集合,而对象 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,那么这应该满足您的需要。

    【讨论】:

    • 表内没有关系绑定...即;他们没有外键。例如:- table2/field1 应该只在 table1/field1 中,但这种关系是以编程方式实现的...
    • 所以对象没有任何关系?是否有任何对象具有对其他对象实例的引用或引用集合?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多