我想設置一個1to0..1(零或一)關係,但遇到問題。休眠JPA註釋1到0..1的關係
現在我的假設是使用@OneToMany,而不是@OneToOne。
基本上我希望我的「孩子」表持有「父母」的外鍵(我非常鬆散地使用孩子和父母)。我從來不需要加載「兒童」獨立
這是基本的表結構我想達到像下面
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;
}
上面的代碼
ITEM {
ID
RELATED_ITEM_ID
}
INVOICE {
ID
}
CATALOGUE {
ID
}
Reprsented作爲Java類,如果我只有在hibernate中註冊的發票或目錄才能創建我想要的表格,並且完美地工作。但是,只要我有發票和目錄中註冊兩個,休眠拋出我的錯誤
org.hibernate.MappingException: Duplicate property mapping of _itemsBackref found in package.name.Item
,我可能不應該有使用過的地址作爲我的榜樣,地址存儲複雜。把一個外國人存到一個地址是一個常見的陷阱,它會讓你陷入困境。我已更新了我的原始帖子。 – kabal