I'm trying [5.4.0.CR1|http://in.relation.to/2018/11/15/hibernate-orm-540-cr1-out/], which contains https://hibernate.atlassian.net/browse/HHH-13060. The latter has caused our code that fetches mappings to fail (using 4 . 2.2, this issue has come up as part of the upgrade to latest 5.x version).
Below is a repro:
{code:java} MetadataSources metadataSources = new MetadataSources(); metadataSources.addAnnotatedClass(model1.MyPojo.class); metadataSources.addAnnotatedClass(model2.MyPojo.class);
Properties properties = new Properties(); properties.put(AvailableSettings.DIALECT, HSQLDialect.class.getName()); BootstrapServiceRegistry bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder() .build(); StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder(bootstrapServiceRegistry); standardServiceRegistryBuilder.applySettings(properties);
StandardServiceRegistry standardServiceRegistry = standardServiceRegistryBuilder.build();
MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(standardServiceRegistry); Metadata metadata = metadataBuilder.build(); Iterator<PersistentClass> classMappings = metadata.getEntityBindings().iterator(); {code}
I just need the {{Metadata}} to retrieve {{PersistentClass}} objects (I don't need to build the SF). However, this fails now with the below error:
Exception in thread "main" org.hibernate.DuplicateMappingException: The [model1.MyPojo] and [model2.MyPojo] entities share the same JPA entity name: [MyPojo] which is not allowed! at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.addEntityBinding(InFlightMetadataCollectorImpl.java:305) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:826) at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies(AnnotationMetadataSourceProcessorImpl.java:250) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies(MetadataBuildingProcess.java:231) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:274) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:84) at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:474) at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:85) at test.MyHibernateMain.main(MyHibernateMain.java:34)
Any chance to expose an API to retrieve those PersistentClasses? |
|