问题描述
我有 3 个类 - Issue、Sprint 和 EmbeddableId 类 SprintId。
我不知道如何在 jiraInstance
和 Issue
类中实现 Sprint
字段。由于 Issue
可能未连接到任何 Sprint
,我希望 jiraInstance
上的 Issue
java 字段用于跟踪创建此特定问题的 jira 实例。当它连接到 Sprint
时,我只想将 jiraInstance
作为其组合键的一部分。但下面的映射给了我:
Caused by: org.hibernate.DuplicateMappingException: Table [issue] contains physical column name [jira_instance] referred to by multiple logical column names: [jira_instance],[jiraInstance]
课程:
class Issue {
@ManyToOne()
@JoinColumns({
@JoinColumn(
name = "sprint_id",referencedColumnName = "sprint_id"),@JoinColumn(
name = "jira_instance",referencedColumnName = "jira_instance")
})
private Sprint lastSprint;
//this field causes clash with 'jira_instance' in @JoinColumn
private String jiraInstance;
}
class Sprint {
@EmbeddedId
private SprintId id;
}
class SprintId implements Serializable {
@Column(name = "sprint_id")
private String sprintId;
@Column(name = "jira_instance")
private String jiraInstance;
}
将@Column 添加为:
@Column(name="jira_instance")
private String jiraInstance;
导致 hibernate 声称它必须是 insertable = true,updatable = false
,但我需要能够在它未连接到任何冲刺时将 jiraInstance 添加到 Issue
。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)