Я получил эти 2 сущности:
@javax.persistence.Entity
public class Book {
@javax.persistence.EmbeddedId
private BookPK id;
private String title;
@javax.persistence.ManyToOne(fetch = javax.persistence.FetchType.LAZY)
@javax.persistence.JoinColumns({
@javax.persistence.JoinColumn(name = "LNGCOD", referencedColumnName = "LNGCOD"),
@javax.persistence.JoinColumn(name = "LIBCOD", referencedColumnName = "LIBCOD") })
private Language language;
}
@javax.persistence.Entity
public class Language {
@javax.persistence.EmbeddedId
private LanguagePK id;
private String name;
}
с составными PK:
@Embeddable
public class BookPK implements Serializable {
private Integer bookcod;
private Integer libcod;
}
@Embeddable
public class LanguagePK implements Serializable {
private Integer lngcod;
private Integer libcod;
}
Если я попытаюсь создать новую Книгу и сохранить ее, я получу исключение, сообщающее мне libcodвстречается дважды в операторе вставки («Столбец 'libcod' указан дважды»).Но я не могу использовать «inserttable = false» при определении JoinColumn («Смешивать вставляемые и не вставляемые столбцы в свойстве запрещено»).
Есть ли способ определить эти объекты + отношения, чтобыколонки управляются автоматически Hibernate?(Я особенно думаю о libcod).
Спасибо.