gpt4 book ai didi

java - GlassFish 4.1 + Hibernate 4.3 = 无法通过 orm.xml 覆盖映射

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:27 24 4
gpt4 key购买 nike

当我尝试通过 orm.xml 文件覆盖实体的映射时出现此异常:

2014-11-10T20:08:30.815+0100|Severe: Exception while preparing the app : [PersistenceUnit: irems-main] Unable to build Hibernate SessionFactory
org.hibernate.DuplicateMappingException: Duplicate class/entity mapping testing_ejb.MyAddress
at org.hibernate.cfg.Configuration$MappingsImpl.addClass(Configuration.java:2835)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:816)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3788)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3742)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1410)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152)
at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:199)
at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:107)
at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:223)
at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:510)
at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:230)
at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:168)

您可以从here 下载SSCCE

它只包含两个项目(EAR + EJB)和一个由 bean 管理的映射实体。各自的实体被标记为@Entity,并映射到orm.xml

部署时出错。

最佳答案

按如下所示更改 orm xml 中的实体声明:

<entity name="Employee" class="testing_ejb.MyAddress" metadata-complete="false">
</entity>

此外,META-INF/orm.xml 必须位于您的 persistence.xml 配置文件旁边。将 orm.xml 从子 jar 移动到根 persistence.xml 所在的位置。

关于java - GlassFish 4.1 + Hibernate 4.3 = 无法通过 orm.xml 覆盖映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com