我在JPA中关系@OneToMany有问题。我想保存客户和消息对象之间的关系,但我得到了NullPointerException。我不知道为什么,因为我认为下面的代码会顺利运行。
这是我要做的事情:
Customer new = new Customer();
new.setEmail(email);
new.setUserId(userId);
new.setLastname(lastname);
new.setFirstname(firstname);
new.setPhone(phone);
quick.customerNew(new);
Messages msg = new Messages ();
msg.setMessage(message);
quick.newMessage(msg);
//Here i got the NullPointerException
new.getCustomerMessages.add(msg);
quick.customerUpdate(new);
客户对象和消息对象存储在数据库中。但关系本身存在并且我得到了,正如我所说,NullPointerException
public class Customer implements Serializable {
[...]
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "_id_info", referencedColumnName = "_id")
private Set<Messages> customerMessages;
[getter/setter]
}
答案 0 :(得分:0)
//Here i got the NullPointerException
new.getCustomerMessages.add(msg);
如果此行抛出NullPointerException
,则可能意味着两件事:&#34; new&#34; (geez,只是将其键入为变量名称)null
或getCustomerMessages()
返回null
。
由于您的代码达到了这一点,通过访问&#34; new&#34;多次以前,我认为&#34;新&#34;不是罪魁祸首。
由于您从未在代码中调用setCustomerMessages()
,并且没有迹象表明任何其他调用都会设置您的customerMessages
属性,我认为这将是您需要设置的成员。