无法在我的数据库中存储一对多关系

Can't store OneToMany relationsship in my Database

我对 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]
 }
//Here i got the NullPointerException
new.getCustomerMessages.add(msg);

如果这一行抛出 NullPointerException,它可能意味着两件事:要么 "new"(哎呀,把它作为变量名输入会很痛)是 null,或者getCustomerMessages() returns null.

由于您的代码达到了这一点,通过之前多次访问 "new",我认为 "new" 不是这里的罪魁祸首。

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