我有一個JPA實體的定義是這樣的:實體的JPA收藏領域是可以修改的
@Entity
@Table(name = "JPA_TEACHER")
public class Teacher implements ITeacher{
@Id
private String id;
@Column(name = "NAME")
private String name;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
@JoinColumn(name="TEACHER_ID", referencedColumnName="ID")
private List<Student> students;
public Teacher() {
super();
}
public Teacher(String name) {
super();
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
public void addStudents(Student student) {
if(this.students == null){
this.students = new ArrayList<Student>();
}
this.students.add(student);
}
}
- 我得到老師的名單與實體管理器EJB範圍內命名查詢。
- 然後我用結果列表創建一個新的
ArrayList
,因爲JPA返回的結果列表是隻讀的。 - 我嘗試將學生添加到學生字段爲空的某些教師的學生字段中。然後我得到一個
NullPointException
,無論我試圖在該字段爲空時將新的ArrayList
分配給該字段。看來,學生領域是可修改的。但其他字段如name
是可修改的。
我已經使用Google搜索但沒有找到任何東西。希望有人對此有所瞭解。 非常感謝。
一個多對多關係,每個領域有修改的,也是學生的名單。由於其他因素,您將得到NullPointerException。 –