Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.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 JPA实体多通空_Java_Jpa_Many To One - Fatal编程技术网

Java JPA实体多通空

Java JPA实体多通空,java,jpa,many-to-one,Java,Jpa,Many To One,我有一个jpa实体的问题,当我保存它时,它可能是空的 我的雇员可以有一个主管,但也可以没有主管,这是我的问题。当我的员工没有主管时,会显示一个错误,我不知道如何解决它 ejb.EJBException:bean遇到非应用程序异常;嵌套异常为:org.apache.openjpa.persistence.ArgumentException:在附加期间,在持久字段“patinfo.gestionprojet.ejb.EmployeBean.Responsible”中遇到新对象。但是,此字段不允许级联

我有一个jpa实体的问题,当我保存它时,它可能是空的

我的雇员可以有一个主管,但也可以没有主管,这是我的问题。当我的员工没有主管时,会显示一个错误,我不知道如何解决它

ejb.EJBException:bean遇到非应用程序异常;嵌套异常为:org.apache.openjpa.persistence.ArgumentException:在附加期间,在持久字段“patinfo.gestionprojet.ejb.EmployeBean.Responsible”中遇到新对象。但是,此字段不允许级联连接。将此字段的cascade属性设置为CascadeType.MERGE或CascadeType.ALL(JPA注释)或“MERGE”或“ALL”(JPA orm.xml)。如果没有级联,则无法将引用附加到新对象。失败对象:patinfo.gestionprojet.ejb。EmployeBean@7a8f9cc4

我尝试使用@joincolumn的可空参数,但它没有改变任何东西

@ManyToOne
@JoinColumn(name="EMP_NoResponsable")
private EmployeBean responsable;
有人有主意吗

当我尝试像这样使用cascade attribure时:

当我尝试使用此参数时

@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="EMP_NoResponsable")
private EmployeBean responsable;
此请求已执行

INSERT INTO employe (EMP_Adresse, EMP_B13iemeSalaireInclus, EMP_BActif, 
        EMP_BAllocFam, EMP_BCongeClient, EMP_BConjointActLucrative, 
        EMP_BConjointAllocFam, EMP_BJoursFeriesInclus, EMP_BSalaireMensuel, 
        EMP_BVacancesIncluses, EMP_CantonHabitation, EMP_CasePostale, 
        EMP_DateDebutContrat, EMP_DateFinContrat, EMP_DateNaissance, 
        EMP_Deleted, EMP_DescriptionPoste, EMP_Email, EMP_EmailProf, 
        EMP_EmployeurConjoint, EMP_EtatCivilDateDebut, EMP_Localite, 
        EMP_Montant13iemeSalaire, EMP_MontantSalaire, EMP_NbHeuresSemaine, 
        EMP_NoAVS, EMP_NoFax, EMP_NoFaxProf, EMP_NoImmeuble, EMP_NoMobile, 
        EMP_NoMobileProf, EMP_NoTel, EMP_NoTelProf, EMP_Nom, EMP_Npa, 
        EMP_PermisSejour, EMP_Prenom, EMP_Sexe, EMP_TarifHeure, 
        EMP_TarifHeureCoutReel, EMP_TauxOccupation, EMP_TempsEssai, 
        EMP_TxActiviteConjoint, EMP_NoCanton, EMP_NoContact, EMP_NoEntreprise, 
        EMP_NoEtatCivil, EMP_NoNationalite, EMP_NoPays, EMP_NoResponsable) 
    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
        ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
        ?, ?) 
[params=(null) null, (null) null, (int) 0, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (int) 0, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (int) 0, (null) null, (null) null, (null) null, (float) 0.0, (float) 0.0, (float) 0.0, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null, (null) null]} [code=1048, state=23000]
这显然不是我想要的

加上:

@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void add(EmployeBean a) {
    getEntityManager().persist(a);
}
要修改:

@TransactionAttribute(TransactionAttributeType.REQUIRED)
public EmployeBean modify(EmployeBean a) {
    EmployeBean ret = getEntityManager().merge(a);
    return ret;
}

问题似乎在于,你试图将一位新主管附加到现有员工身上,而不是层叠,也没有首先坚持新主管。你读过错误消息了吗?我也尝试过级联,但是我的employe bean的所有字段的值都为null,我不明白为什么…如果你不发布任何代码,我们也无法理解任何内容。你想看到什么样的代码?你试图持久化对象的代码呢?!问题似乎在于,你试图将一位新主管附加到现有员工身上,而不是层叠,也没有首先坚持新主管。你读过错误消息了吗?我也尝试过级联,但是我的employe bean的所有字段的值都为null,我不明白为什么…如果你不发布任何代码,我们也无法理解任何内容。你想看到什么样的代码?你试图持久化对象的代码呢?!