[英]Java JPA flush() doesn't update database in one to many relationship?
[英]References to one to many relationship objects doesn't update
class Person
{
List<Skill> skills;
//... other stuff
}
class Skill{
//stuff
}
mySkillList.add(skill);
person.add(skill);
person.getSkills(); //all skills have ID attribute null
repository.save(person);
person.getSkills(); //all skills now have ID not null, after saving
但是,當我遍歷mySkillList
,所有技能都沒有ID(名為id的屬性仍為null)。
我試圖了解發生了什么問題,為什么原始人對象的技能列表得到更新后保存后我的對象列表沒有得到更新。
我正在使用Spring-Data,如果有什么不同的話。
更新資料
因此,看起來像我得到的行為,是根據文檔預期的。 但是我的要求是獲取存儲在mySkillList
的某些技能的ID,而不是Person
對象中存在的所有技能的ID。
我當然可以在保存之前和之后從Person
對象中獲取所有技能,以找出所有新技能,但是隨后新創建的技能失去了將它們保存在mySkillList
的順序,這正是我想要的。 換句話說,我需要所有的新技能,就像將它們插入到Person對象中一樣。 任何幫助是極大的贊賞。
謝謝
保存給定的實體。 將返回的實例用於進一步的操作,因為保存操作可能已完全更改了實體實例。
Spring Data在普通的POJO上工作,並且其契約明確指出,根據持久性設置,您甚至可能無法獲得相同的實例。 保存后,您需要從其資源庫中重新加載技能對象。
如果希望技能對象在各種內存數據結構之間共享,則在構造每個技能時需要保存,然后再將其添加到列表和/或Person
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.