Java 实体的JPA集合字段是可修改的
我有一个定义如下的JPA实体:Java 实体的JPA集合字段是可修改的,java,jpa,ejb,entitymanager,managed-bean,Java,Jpa,Ejb,Entitymanager,Managed Bean,我有一个定义如下的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, orph
@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);
}
}
@实体
@表(name=“JPA\U教师”)
公共课堂教师实施iTacher{
@身份证
私有字符串id;
@列(name=“name”)
私有字符串名称;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,orphan=true)
@JoinColumn(name=“TEACHER\u ID”,referencedColumnName=“ID”)
私人名单学生;
公共教师(){
超级();
}
公共教师(字符串名称){
超级();
this.name=名称;
}
公共字符串getId(){
返回id;
}
公共无效集合id(字符串id){
this.id=id;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公众学生名单{
留学生;
}
公立学校学生(名单学生){
这个。学生=学生;
}
公立学校学生(学生){
if(this.students==null){
this.students=new ArrayList();
}
this.student.add(student);
}
}
ArrayList
,因为JPA返回的结果列表是只读的NullPointException
,不管我是否尝试在字段为null时为其分配一个新的ArrayList
。学生字段似乎是可修改的。但是,name
等其他字段是可修改的非常感谢。删除一个特技凹痕末端的S以添加他
this.student.add(student) 除了Big Bad Baerni响应之外,请确保您的学生具有指定为学生是此处关系所有者的教师属性
public void addStudents(Student student) {
if(this.students == null){
this.students = new ArrayList<Student>();
}
student.setTeacher(this)
this.students.add(student);
}
public void addstudent(学生){
if(this.students==null){
this.students=new ArrayList();
}
学生教师(本)
this.student.add(student);
}
看
我不知道你的领域,但我知道,这里应该有很多关系每个领域都是可以修改的,还有学生名单。因为其他原因,你得到了NullPointerException。哦,我很抱歉。这是我的错,因为我粗心大意,但不是这个问题的答案。谢谢:-)顺便说一句,我已经纠正了拼写错误。