[英]How to join two entities through two secondary tables in hibernate jpa?
我需要您的幫助。
我有table_action和table_list的實體。 我想在table_action實體中有一個table_list元素列表。 我無法更改數據庫模型,必須使用休眠模式。 您可以在下面的屏幕截圖中看到連接。
我現在所擁有的不起作用:
TableAction.java :
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "table_action2list", joinColumns = {
@JoinColumn(name = "OBJID") }, inverseJoinColumns = {
@JoinColumn(name = "list_objid", referencedColumnName = "objid", nullable = false, insertable = false, updatable = false),
@JoinColumn(name = "list_type", referencedColumnName = "list_type", nullable = false, insertable = false, updatable = false),
@JoinColumn(name = "list_kind", referencedColumnName = "list_kind", nullable = false, insertable = false, updatable = false) })
private Set<TableList> tableList = new HashSet<TableList>();
我不知道如何加入table_action2plan。
這是有效的sql。
select rl.* from table_list rljoin table_action2list arc on arc.LIST_OBJID = rl.OBJID and arc.LIST_KIND = rl.LIST_KIND and arc.LIST_TYPE = rl.LIST_TYPE join table_action2plan ac on ac.OBJID = arc.action2plan_objid join table_action ta on ta.OBJID = ac.ACTION_OBJID ;
經過研究,結果證明我無法在table_action實體中擁有table_list的列表,因為TableAction中沒有這樣的關系。 通過更改數據庫結構解決了問題,因此實體之間只有一個連接表。 然后,它與JoinTable批注一樣照常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.