我需要您的帮助。
我有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 ;
答案 0 :(得分:0)
经过一些研究,结果证明我无法在table_action实体中拥有table_list的列表,因为TableAction中没有这样的关系。通过更改数据库结构解决了问题,因此实体之间只有一个连接表。然后使用JoinTable批注照常工作。