Hibernate - 双左连接到同一个表

时间:2013-07-10 15:40:32

标签: java sql hibernate

我有两张桌子

首先 plan_time

NAME | START_FK | END_FK 
------------------------
test | 1        | 2

start_fk和end_fk是FK,参考表

ID | NAME
---------
1  | time1
2  | time2 

我正在执行简单的选择查询:

SELECT pt.*, t1.*, t2.* FROM plan_table pt LEFT JOIN times t1 ON t1.id = pt.start_fk LEFT JOIN times t2 ON t2.id = pt.end_fk

这就是问题所在。在sql控制台下我得到了很好的结果:

First row from plan_table join by first row from times table and second row from times table.

当我通过hibernate

这样做时
SQLQuery sqlQuery = s.createSQLQuery( SQL-QUERY )
            .addEntity(PlanTime.class)
            .addEntity(Times.class)
            .addEntity(Times.class);

我得到3个物件

  1. 来自plan_table的第一行
  2. 时间表第一行
  3. 次表中的第一行 - 这是第二个对象的重复。
  4. 它必须是Hibernate的东西...我检查了发送到DB的SQL,它没问题。

    :/

    请帮忙。

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法。以下提示帮助了我:

  1. 我通过 getStartFk() getEndFk()方法接收t1和t2形成PlanTable对象。
  2. 我正在使用渴望提取
  3. 我还在试图找出这个问题的现状。

    https://hibernate.atlassian.net/browse/HHH-3988