保存具有 @OneToMany 关系的实体时出现 JPA2 NullPointerException [已关闭]

问题描述 投票:0回答:1

我有两个具有

@OneToMany
关系的实体。 问题是我在保存过程中在
NullPointerException
行上看到了
getComps().add(comp)
。 如果我显式实例化
comps
集,它就可以正常工作。如您所知,如果您有注释,则不需要这样做。我在该实体中有其他对象,无需显式实例化即可正常工作。可能的原因是什么?

//Main Method    
public static void main(String argz[]){
  ....
  Message message = new Message();
  message.setMessage("Hello World!");
  Comp comp = new Comp();
  comp.setName(getName());
  message.addComp(comp);
  user.createMessage(message);
  User aUser =  userService.save(user);
}
    
//Message Entity
@JsonIgnore
@OneToMany(targetEntity = Comp.class,
                mappedBy="message",
                fetch=FetchType.LAZY, 
                cascade={CascadeType.All},
                orphanRemoval=true)
private Set<Comp> comps;
         
public void addComp(Comp comp){
    comp.setMessage(this);
    getComps().add(comp);
}
                    
//Comp Entity       
@JsonIgnore
@JsonBackReference
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="message_id")
private Message message;
java hibernate spring-mvc jpa-2.0 one-to-many
1个回答
1
投票

异常原因在代码中

private Set<Comp> comps;

更改为

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "message")
private Set<Comp> comps = new HashSet<Comp>(0);

public Set<Comp> getComps() {
  return this.comps;
}

public void setComps(Set<Comp> comps) {
  this.comps = comps;
}
© www.soinside.com 2019 - 2024. All rights reserved.