使用Hibernate 5.2.17和WilFly 10,我在带有多个实体jar的Ear应用程序中使用了persistence.xml。
我的persistence.xml位于耳朵lib目录中的jar中。
它使用<jar-file>
引用两个或多个ejb模块。
我试图在persistence.xml中启用hibernate.enhance.enableDirtyTracking
以便执行运行时增强。这是行不通的。
通过在ejb的jar中移动persistence.xml,我设法使其适用于一个ejb模块。
在调试中,我发现当persistence.xml位于jar之外时,它是在classloader加载ejb模块之后读取的,因此未进行任何增强。 但是,当它位于ejb模块内部时,将在实体的类加载之前对其进行读取,以便ByteCodeProvider可以增强该模块的实体。
我不希望使用编译时增强功能,因为我们为客户创建了定制模块,这些模块是单独部署的,并且希望它们与Hibernate 5.3或更高版本一起使用。
一种解决方案是在部署时运行增强功能或将我的实体打包在一个单独的jar或其他东西中。
有人知道如何使用一个persistence.xml启用增强功能,该文件引用位于两个或多个jar文件中的实体吗?