Jpa雙向關聯表(Teacher->Student)保存時遇到一個問題,保存Student(多方)時通過資料庫查詢并設定其關聯的Teacher(在資料庫中已存在,id為1).試了很多辦法,沒辦法保存外鍵teacherId。請各位支招:)
錯誤資訊:detached entity passed to persist: com.ld.entity.Teacher,(貌似物件內部形成了回圈包含了)。
代碼如下:
物體類:Teacher
@Entity
@Data
public class Teacher {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
String name;
@OneToMany(mappedBy="teacher", cascade = CascadeType.ALL)
private List<Student> students;
}
物體類:Student
@Entity
@Data
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private Integer age;
@Transient
private Long teacherId;
@ManyToOne(cascade = CascadeType.ALL, fetch=FetchType.LAZY)
@JoinColumn(name = "teacherId")
private Teacher teacher;
}
測驗類:
@Test
void addStudent() {
Student student = new Student();
student.setAge(14);
student.setName("小成");
Teacher teacher = teacherDao.findById(1L).get();
student.setTeacher(teacher);
studentDao.save(student);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/94615.html
標籤:Java EE
下一篇:java 多執行緒并發問題
