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
多个Hibernate环境修订实体_Hibernate_Jpa_Hibernate Envers - Fatal编程技术网

多个Hibernate环境修订实体

多个Hibernate环境修订实体,hibernate,jpa,hibernate-envers,Hibernate,Jpa,Hibernate Envers,我在persistence.xml中有两个包含实体的jar文件: <jar-file>/lib/model.jar</jar-file> <jar-file>/lib/central-model.jar</jar-file> 有人遇到过这样的问题吗? 您是如何解决这一问题的?您需要覆盖两个JAR中的实体名称,以使Hibernate在它们之间发挥作用: 在model.jar中: @Entity(name="prefixA.Revis

我在persistence.xml中有两个包含实体的jar文件:

    <jar-file>/lib/model.jar</jar-file>
    <jar-file>/lib/central-model.jar</jar-file>
有人遇到过这样的问题吗?
您是如何解决这一问题的?

您需要覆盖两个JAR中的实体名称,以使Hibernate在它们之间发挥作用:

在model.jar中:

@Entity(name="prefixA.Revision")
public class Revision {}
@Entity(name="prefixB.Revision")
public class Revision {}
在central-model.jar中:

@Entity(name="prefixA.Revision")
public class Revision {}
@Entity(name="prefixB.Revision")
public class Revision {}
在查询中,然后使用:

createQuery("from prefixA.Revision")

这取决于使用术语“修订实体”时的含义

假设您的问题被标记为
hibernate envers
,我假设您指的是一个用
@RevisionEntity
注释的实体。如果这是正确的,那么您所描述的是不可能的,至少在单个持久性单元中是不可能的

支持具有多个
@RevisionEntity
注释类的唯一方法是将它们分离到各自的持久性单元中


如果您没有提到上述内容,并且正在描述一个场景,其中有两个实体具有相同的名称但具有不同的类,那么您需要按照的建议,为每个实体指定一个唯一的名称,以便Hibernate区分它们。

那么model.jar和central-model.jar都包含修订实体吗?是的,它们包含修订实体。model.jar的修订实体指向一个数据库模式中的ab表,central-model.jar的修订实体指向另一个数据库模式。感谢大家的回复。正如@Naros所设想的,我正在处理的是“@RevisionEntity”。不幸的是,两个persistencContext是不可能的,因为我从一个中心模型到另一个模型都是子类。看来我得另找解决办法了。