mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-27 05:45:26 +00:00
HHH-8201 global info defined in the orm.xml is not mocked into entity annotation
This commit is contained in:
parent
a0ccbb425b
commit
262c109e64
@ -27,10 +27,12 @@
|
|||||||
import java.sql.Blob;
|
import java.sql.Blob;
|
||||||
import java.sql.Clob;
|
import java.sql.Clob;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.jboss.jandex.AnnotationInstance;
|
||||||
import org.jboss.jandex.IndexView;
|
import org.jboss.jandex.IndexView;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
|
|
||||||
@ -62,6 +64,7 @@
|
|||||||
import org.hibernate.metamodel.MetadataSources;
|
import org.hibernate.metamodel.MetadataSources;
|
||||||
import org.hibernate.metamodel.SessionFactoryBuilder;
|
import org.hibernate.metamodel.SessionFactoryBuilder;
|
||||||
import org.hibernate.metamodel.internal.source.annotations.AnnotationMetadataSourceProcessorImpl;
|
import org.hibernate.metamodel.internal.source.annotations.AnnotationMetadataSourceProcessorImpl;
|
||||||
|
import org.hibernate.metamodel.internal.source.annotations.util.JPADotNames;
|
||||||
import org.hibernate.metamodel.internal.source.hbm.HbmMetadataSourceProcessorImpl;
|
import org.hibernate.metamodel.internal.source.hbm.HbmMetadataSourceProcessorImpl;
|
||||||
import org.hibernate.metamodel.spi.AdditionalJaxbRootProducer;
|
import org.hibernate.metamodel.spi.AdditionalJaxbRootProducer;
|
||||||
import org.hibernate.metamodel.spi.MetadataContributor;
|
import org.hibernate.metamodel.spi.MetadataContributor;
|
||||||
@ -169,7 +172,7 @@ protected boolean isUseQuotedIdentifiersGlobally() {
|
|||||||
final IndexView jandexView = options.getJandexView() != null
|
final IndexView jandexView = options.getJandexView() != null
|
||||||
? metadataSources.wrapJandexView( options.getJandexView() )
|
? metadataSources.wrapJandexView( options.getJandexView() )
|
||||||
: metadataSources.buildJandexView();
|
: metadataSources.buildJandexView();
|
||||||
|
Collection<AnnotationInstance> tables = jandexView.getAnnotations( JPADotNames.TABLE );
|
||||||
final MetadataSourceProcessor[] metadataSourceProcessors;
|
final MetadataSourceProcessor[] metadataSourceProcessors;
|
||||||
if ( options.getMetadataSourceProcessingOrder() == MetadataSourceProcessingOrder.HBM_FIRST ) {
|
if ( options.getMetadataSourceProcessingOrder() == MetadataSourceProcessingOrder.HBM_FIRST ) {
|
||||||
metadataSourceProcessors = new MetadataSourceProcessor[] {
|
metadataSourceProcessors = new MetadataSourceProcessor[] {
|
||||||
|
@ -90,17 +90,19 @@ Index build(EntityMappingsMocker.Default globalDefaults) {
|
|||||||
//this class has been overrided by orm.xml
|
//this class has been overrided by orm.xml
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ( ci.annotations() != null && !ci.annotations().isEmpty() ) {
|
ClassInfo mockedClassInfo = createClassInfo( name.toString() );
|
||||||
|
if ( CollectionHelper.isNotEmpty( ci.annotations() ) ) {
|
||||||
Map<DotName, List<AnnotationInstance>> tmp = new HashMap<DotName, List<AnnotationInstance>>( ci.annotations() );
|
Map<DotName, List<AnnotationInstance>> tmp = new HashMap<DotName, List<AnnotationInstance>>( ci.annotations() );
|
||||||
DefaultConfigurationHelper.INSTANCE.applyDefaults( tmp, globalDefaults );
|
DefaultConfigurationHelper.INSTANCE.applyDefaults( tmp, globalDefaults );
|
||||||
mergeAnnotationMap( tmp, annotations );
|
mergeAnnotationMap( tmp, annotations );
|
||||||
classes.put( name, ci );
|
classInfoAnnotationsMap.get( name ).putAll( tmp );
|
||||||
if ( ci.superName() != null ) {
|
// classes.put( name, ci );
|
||||||
addSubClasses( ci.superName(), ci );
|
// if ( ci.superName() != null ) {
|
||||||
}
|
// addSubClasses( ci.superName(), ci );
|
||||||
if ( ci.interfaces() != null && ci.interfaces().length > 0 ) {
|
// }
|
||||||
addImplementors( ci.interfaces(), ci );
|
// if ( CollectionHelper.isNotEmpty( ci.interfaces() ) ) {
|
||||||
}
|
// addImplementors( ci.interfaces(), ci );
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Index.create(
|
return Index.create(
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
import org.hibernate.id.enhanced.SequenceStyleGenerator;
|
import org.hibernate.id.enhanced.SequenceStyleGenerator;
|
||||||
import org.hibernate.mapping.Table;
|
import org.hibernate.mapping.Table;
|
||||||
import org.hibernate.metamodel.MetadataSources;
|
import org.hibernate.metamodel.MetadataSources;
|
||||||
|
import org.hibernate.metamodel.spi.binding.EntityBinding;
|
||||||
import org.hibernate.persister.entity.EntityPersister;
|
import org.hibernate.persister.entity.EntityPersister;
|
||||||
import org.hibernate.test.annotations.id.sequences.entities.HibernateSequenceEntity;
|
import org.hibernate.test.annotations.id.sequences.entities.HibernateSequenceEntity;
|
||||||
import org.hibernate.testing.FailureExpectedWithNewMetamodel;
|
|
||||||
import org.hibernate.testing.RequiresDialect;
|
import org.hibernate.testing.RequiresDialect;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
@ -52,8 +52,10 @@ protected String createSecondSchema() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@FailureExpectedWithNewMetamodel
|
|
||||||
public void testHibernateSequenceSchema() {
|
public void testHibernateSequenceSchema() {
|
||||||
|
EntityBinding entityBinding = metadata().getEntityBinding( HibernateSequenceEntity.class.getName() );
|
||||||
|
org.hibernate.metamodel.spi.relational.Table table = (org.hibernate.metamodel.spi.relational.Table ) entityBinding.getPrimaryTable();
|
||||||
|
Assert.assertEquals( SCHEMA_NAME, table.getSchema().getName().getSchema().getText() );
|
||||||
EntityPersister persister = sessionFactory().getEntityPersister( HibernateSequenceEntity.class.getName() );
|
EntityPersister persister = sessionFactory().getEntityPersister( HibernateSequenceEntity.class.getName() );
|
||||||
IdentifierGenerator generator = persister.getIdentifierGenerator();
|
IdentifierGenerator generator = persister.getIdentifierGenerator();
|
||||||
Assert.assertTrue( SequenceStyleGenerator.class.isInstance( generator ) );
|
Assert.assertTrue( SequenceStyleGenerator.class.isInstance( generator ) );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user