Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果数据库中的当前字段为空,则创建新对象_Java_Jpa_Playframework - Fatal编程技术网

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>。