无法在我的数据库中存储OneToMany关系

时间:2017-10-19 11:11:45

标签: jpa java-ee entity

我在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]
 }

1 个答案:

答案 0 :(得分:0)

//Here i got the NullPointerException
new.getCustomerMessages.add(msg);

如果此行抛出NullPointerException,则可能意味着两件事:&#34; new&#34; (geez,只是将其键入为变量名称)nullgetCustomerMessages()返回null

由于您的代码达到了这一点,通过访问&#34; new&#34;多次以前,我认为&#34;新&#34;不是罪魁祸首。

由于您从未在代码中调用setCustomerMessages(),并且没有迹象表明任何其他调用都会设置您的customerMessages属性,我认为这将是您需要设置的成员。