我有2个表“学生”和“选项列表”。
选项列表 - 使用它
作为州,国家,城市等列表的常用表。
以下是学生班级:
@Entity
public class Student {
@Id
Long id;
String firstName;
String lastName;
Long accountId;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumns({@JoinColumn(name="country",referencedColumnName = "name"),
@JoinColumn(name="accountId",referencedColumnName = "accountId")}
)
PickList country;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumns({@JoinColumn(name="state",referencedColumnName = "name"),
@JoinColumn(name="accountId",referencedColumnName = "accountId")}
)
PickList state;
}
这是选项列表:
@Entity
@Table(name = "picklist", uniqueConstraints = {
@UniqueConstraint(columnNames = {"accountId", "name"})
})
public class PickList {
@Id
long id;
long accountId;
String name;
}
错误 -
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: column: accountid (should be mapped with insert="false" update="false")
答案 0 :(得分:0)
消息很明确:映射中有重复的列。这意味着您将相同的数据库列映射了两次。
尝试这样做 @JoinColumn(name =" accountId&#34 ;, referencedColumnName =" accountId", insertable = false,updatable = false)