Java 多个持久性单元获取未知实体异常

Java 多个持久性单元获取未知实体异常,java,entity-framework,hibernate,maven,jpa,Java,Entity Framework,Hibernate,Maven,Jpa,实际上,我在persistence.xml中有2个持久性单元,其中性别实体在phase1 pu持久性单元中配置,个人在phase2 pu中配置。我想在性别实体中添加@manytone 启动应用程序时,出现以下错误: [错误]无法执行goal de.juplo:hibernate maven插件:2.0.0:create h2-create-pris-p2 on project lookup rest:执行goal de.juplo:hibernate maven插件的h2-create-pris

实际上,我在persistence.xml中有2个持久性单元,其中性别实体在phase1 pu持久性单元中配置,个人在phase2 pu中配置。我想在性别实体中添加@manytone

启动应用程序时,出现以下错误:

[错误]无法执行goal de.juplo:hibernate maven插件:2.0.0:create h2-create-pris-p2 on project lookup rest:执行goal de.juplo:hibernate maven插件的h2-create-pris-p2.juplo:hibernate maven插件:2.0.0:create失败:@OneToOne或@ManyToOne on on on on my.mimos.entity.Person.gender引用未知实体:my.mimos.entity->[帮助1][错误] [错误]要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。 [错误]使用-X开关重新运行Maven以启用完整调试日志记录。 [错误] [错误]有关错误和可能的解决方案的更多信息,请阅读以下文章: [错误][帮助1]

以下是我的设置

persistence.xml Gender.java Person.java
持久化单元有自己的实体管理器,它们应该是明显分开的,通常用于不同的数据库或模式


您不能跨持久性单元映射实体,您可以将相同的实体类定义为存在于两个持久性单元中。

您必须为一个数据库创建持久性单元,或仅为一个数据库创建架构。如果应用程序中使用两个不同的数据库,则使用两个持久性单元。每个持久性都创建自己的实体管理器。在您的代码中,它看起来不像两个数据库。仅使用一个持久性单元

persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="phase1-pu">
<class>my.lookup.entity.Gender</class>
<class>my.lookup.entity.Person</class>

</persistence-unit>   
</persistence>
Gender.java

@Entity
@Table(name = "REF_GENDER")
public class Gender extends AbstractEntity<Byte> {

@Id
@Access(AccessType.PROPERTY)
private Byte id;

@NotBlank
@Size(max = 100)
@Column(nullable = false, length = 100)
private String name;

@NotBlank
@Size(max = 10)
@Column(nullable = false, length = 10)
private String code;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "gender", targetEntity = Person.class)
private List<Person> persons = new ArrayList();
}
Person.java

@Entity
@Table(name = "REF_PERSON")
public class Person extends AbstractEntity<Byte> {
@Id
@Access(AccessType.PROPERTY)
private Byte id;

@NotBlank
@Size(max = 100)
@Column(nullable = false, length = 100)
private String name;

@NotBlank
@Size(max = 10)
@Column(nullable = false, length = 10)
private String code;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "gender_id")
private Gender gender;
}
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="phase1-pu">
<class>my.lookup.entity.Gender</class>
<class>my.lookup.entity.Person</class>

</persistence-unit>   
</persistence>
@Entity
@Table(name = "REF_GENDER")
public class Gender extends AbstractEntity<Byte> {

@Id
@Access(AccessType.PROPERTY)
private Byte id;

@NotBlank
@Size(max = 100)
@Column(nullable = false, length = 100)
private String name;

@NotBlank
@Size(max = 10)
@Column(nullable = false, length = 10)
private String code;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "gender", targetEntity = Person.class)
private List<Person> persons = new ArrayList();
}
@Entity
@Table(name = "REF_PERSON")
public class Person extends AbstractEntity<Byte> {
@Id
@Access(AccessType.PROPERTY)
private Byte id;

@NotBlank
@Size(max = 100)
@Column(nullable = false, length = 100)
private String name;

@NotBlank
@Size(max = 10)
@Column(nullable = false, length = 10)
private String code;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "gender_id")
private Gender gender;
}