簡體   English   中英

GlassFish 4.1 + Hibernate 4.3 =無法通過orm.xml覆蓋映射

[英]GlassFish 4.1 + Hibernate 4.3 = Cannot override mapping through orm.xml

當我嘗試通過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)

您可以從這里下載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移動到root persistence.xml所在的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM