-2
我有兩個與@OneToMany
關係的實體。問題是我在保存期間在行getComps().add(comp)
上得到一個空指針。如果我明確實例化comps
集,它會正常工作。您可能知道,如果您有註釋,則不需要。我在該實體中有其他對象,可以在沒有明確實例化的情況下正常工作。可能的原因是什麼?JPA2使用@OneToMany關係保存實體時的NullPointerException
//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;
我們證明您是執行代碼。你的期望可能是錯誤的。 –
我已經包含了我用於測試的測試儀方法。見上面 –
不需要熟悉Hibernate來回答這樣的問題。您正在實例化一組消息,其中的消息組爲空,然後您嘗試向此組添加一個Comp。 Hibernate與你的錯誤沒有任何關係。您無法在空引用上調用方法,就這些。你應該接受羅馬的答案。 –