У меня есть 2 стола «ученик» и «выборщик».
picklist - использовали его как обычный стол для перечисления как государство, страна, город.
Как присоединиться к нескольким столбцам в одной таблице?
Вот студент класс:
@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;
}
Вот Picklist таблица:
@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")
может мой вопрос дубликат, но не найти соответствующий ответ – Nikesh
Что 'accountId' используется для? Это уникально для любой из таблиц? – johnnyaug
это не единственный, это простой столбец, который может быть повторяемым, но accountId и имя UniqueConstraint в таблице выбора – Nikesh