0
另一個像這樣的線程。我爲此奮戰了4天。 註釋@Getter
和@Setter
從龍目插件Hibernate5 OneToMany和ManyToOne映射在外鍵上爲空
我Place
類
@Entity
public class Place {
@Getter
@Setter
@OneToMany(mappedBy = "place", targetEntity = Tag.class, cascade = CascadeType.ALL)
private Set<Tag> tags;
//...
}
Tag
類,應該有很多
@Entity
public class Tag {
@Getter
@Setter
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "fk_place_id")
private Place place;
//...
}
,我已把它像這樣
節約看起來是任何情況下,單線sessionFactory.getCurrentSession().persist(entity)
。用@OneToOne
映射保存實體就像魅力一樣。
奧基,所以我加'@JoinColumn(名稱=「fk_place_id」)''到類Place'現在'Place'類是這種關係的所有者。我的錯誤是因爲當我使用'@ JoinColumn'註解時,它會在我使用它的實體中創建列。我查看了大量的教程,並且在某些時候我只是盯着複製粘貼代碼而沒有思考。 –
你不能那樣做。在雙向OneToMany中,許多方必須是所有者。你必須做的是'tagOne.setPlace(place); tagTwo.setPlace(地點);'。 –
但它工作。那麼可以選擇以其他方式進行製作嗎?像這樣'place.setTags(tagsSet)'?如果我有100個標籤,我需要循環來設置位置。我知道你的解決方案從數據庫的角度來看是合乎邏輯的,但我正在尋求其他方式來做到這一點。 –