无法在我的数据库中存储一对多关系
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
属性,因此我认为这将是您需要设置的成员。
我对 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
属性,因此我认为这将是您需要设置的成员。