Я пытаюсь установить отношение 1to0..1 (ноль или один), но сталкиваюсь с проблемами.
Теперь я предполагаю использовать @OneToMany, а не @ OneToOne.
По сути, я хочу, чтобы моя таблица «child» содержала внешний ключ для «parent» (я использую child и parent очень свободно).Мне никогда не нужно загружать "дочерние" автономные
Это базовая структура таблиц, которую я хочу достичь
ITEM {
ID
RELATED_ITEM_ID
}
INVOICE {
ID
}
CATALOGUE {
ID
}
Представлено как классы Java, подобные следующим
class Item {
...
}
class Invoice {
@OneToMany(fetch=FetchType.EAGER, orphanRemoval = true, cascade = { javax.persistence.CascadeType.ALL })
@Fetch(FetchMode.JOIN)
@JoinColumn(name="RELATED_ITEM_ID", nullable=false)
Set<Item> items;
}
class Catalogue {
@OneToMany(fetch=FetchType.EAGER, orphanRemoval = true, cascade = { javax.persistence.CascadeType.ALL })
@Fetch(FetchMode.JOIN)
@JoinColumn(name="RELATED_ITEM_ID", nullable=false)
Set<Item> items;
}
Приведенный выше код, если у меня есть только Invoice или Catalog, зарегистрированный в hibernate, создаст таблицы так, как я хочу, и будет работать отлично.Однако, как только я зарегистрировал Инвойс и Каталог, Hibernate выдает ошибку
org.hibernate.MappingException: Duplicate property mapping of _itemsBackref found in package.name.Item