【发布时间】:2015-12-12 00:33:40
【问题描述】:
我有以下表结构
TABLE1
T1_ID
T1_Col1
TABLE2
T1_ID
T3_ID
TABLE3
T3_ID
T3_COL1
Table1 和Table3 由Table2 的中间表连接。现在我只有T1_ID,我想从Table3 中获取与T1_ID 关联的所有行。一个简单的 SQL 查询将是
select T1.*, T3.*
from TABLE1 T1, TABLE T2, TABLE3 T3
where T1.T1_ID = T2.T1_ID
and T2.T3_ID = T3.T3_ID
那么我如何在 hibernate/jpa 中做到这一点...我还没有为Table1、Table2、Table3 编写我的实体类。我想将此查询作为Table1 的一部分执行,这样我就可以编写一个方法,比如entity.fetchAssociatedTable3()。我能想到的最简单的方法是在fetchAssociatedTable3 我可以像上面提到的那样放置自定义查询。但是由于我使用的是hibernate/jpa,所以我想知道是否有更好的方法来做到这一点。
更新 显然,我的问题还不够清楚。我想做一些用户 Dragan Bozanovic 提到的事情。但是,我想知道的是
我将如何编写
Table1实体?我的意思是我会在列等上添加什么注释,这将使 hibernate/jpa 了解该列通过Table2与Table3列相关我猜如果问题1得到了回答,那么
getEntity3s()方法就很难写了。但是,如果(对于菜鸟)有什么我需要知道的,我将不胜感激。
【问题讨论】:
标签: java mysql hibernate postgresql jpa