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的属性仍为空)。
我试图了解出了什么问题,为什么保存后我的对象列表没有得到更新,当原始人反对&#39;技能清单得到更新。
我使用Spring-Data,如果这有任何区别的话。
更新
所以看起来我得到的行为是根据文档预期的。但我的要求是获取mySkillList
中存储的某些技能的ID,而不是Person
对象中存在的所有技能的ID。
我当然可以在保存之前和之后获得Person
对象的所有技能,来计算所有新技能,但是新创建的技能会松开它们在{{{{{}中保存的顺序。 1}}这就是我想要的。换句话说,我需要所有与我将其插入到Person对象中的新技能相同的新技能。非常感谢任何帮助。
由于
答案 0 :(得分:3)
保存给定的实体。使用返回的实例进行进一步操作,因为save操作可能已完全更改了实体实例。
Spring Data适用于普通的POJO,它的合同特别指出你甚至可能不会获得相同的实例,具体取决于持久性设置。保存后,您需要从其存储库重新加载技能对象。
如果您希望在各种内存数据结构之间共享技能对象,则需要在构建它之前保存每项技能,然后再将其添加到列表和/或Person
。