Java 如果数据库中的当前字段为空,则创建新对象
我有一个数据库模型类Java 如果数据库中的当前字段为空,则创建新对象,java,jpa,playframework,Java,Jpa,Playframework,我有一个数据库模型类Project,它有两个嵌入的对象字段: @Embedded public ContacterInfo contacter = new ContacterInfo(); @Embedded public CompanyInfo company = new CompanyInfo(); '因为我不想每次使用公司和联系人时都检查是否为空,所以我还是决定创建它们 我所期望的是,当数据库中没有联系人时,Java会为我创建一个新的联系人信息,然后我就可以将它用于新数据。但事实上,我
Project
,它有两个嵌入的对象字段:
@Embedded
public ContacterInfo contacter = new ContacterInfo();
@Embedded
public CompanyInfo company = new CompanyInfo();
'因为我不想每次使用公司
和联系人
时都检查是否为空
,所以我还是决定创建它们
我所期望的是,当数据库中没有联系人时,Java会为我创建一个新的联系人信息,然后我就可以将它用于新数据。但事实上,我发现接触器仍然可以设置为空。我怀疑JPA从数据库加载null
,并用它覆盖我的新创建对象
如何修复此问题?您可以使用JPA实体侦听器()。举例来说:
@PostLoad
void onPostLoad() {
if (contacter == null) {
contacter = new ContacterInfo();
}
if (company == null) {
company = new CompanyInfo();
}
}
每次JPA加载当前实体的实例时,都会调用onPostLoad
祝你好运 您可以使用JPA实体侦听器()。举例来说:
@PostLoad
void onPostLoad() {
if (contacter == null) {
contacter = new ContacterInfo();
}
if (company == null) {
company = new CompanyInfo();
}
}
每次JPA加载当前实体的实例时,都会调用onPostLoad
祝你好运 您可以使用JPA实体侦听器()。举例来说:
@PostLoad
void onPostLoad() {
if (contacter == null) {
contacter = new ContacterInfo();
}
if (company == null) {
company = new CompanyInfo();
}
}
每次JPA加载当前实体的实例时,都会调用onPostLoad
祝你好运 您可以使用JPA实体侦听器()。举例来说:
@PostLoad
void onPostLoad() {
if (contacter == null) {
contacter = new ContacterInfo();
}
if (company == null) {
company = new CompanyInfo();
}
}
每次JPA加载当前实体的实例时,都会调用onPostLoad
祝你好运 您应该将
contacter=new ContacterInfo()如果ContacterInfo
为空,则在接触器的设置器内设置code>。您应将接触器=新的ContacterInfo()如果ContacterInfo
为空,则在接触器的设置器内设置code>。您应将接触器=新的ContacterInfo()如果ContacterInfo
为空,则在接触器的设置器内设置code>。您应将接触器=新的ContacterInfo()如果接触器信息
为空,则在接触器的设置器内设置code>。