为简单起见,这是我的简化模型:
我有2个实体:
@entity
public class Student {
int id;
School school
...
}
学校也是一个实体
@entity
public class School {
int id;
...
}
我试图从文本文件中提取大量数据。
有些学生有相同的学校实例,
我不希望数据库中有多个同名学校,
因此,我的目标是将每个学生保存在学生数据库中,同时确保2个不同学生和同一所学校不会在我的学校数据库中创建2个条目。
问题是,当我尝试让学生坚持时,它给了我一个错误:
“独立的实体已传递给持久对象”,我如何告诉休眠状态,数据库中已经存在学生班级中的学校,而应该使用它呢?
谢谢
最佳答案
用@ManyToOne(cascade=ALL)
映射它。
但是,“相同的名称”是不够的,您应该具有相同的ID。为此,您需要先将School
对象从数据库中获取,然后再将其设置为Student。