mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-20 01:55:02 +00:00
HHH-7756 Disconnect between annotation and hbm entity names
This commit is contained in:
parent
3db62f5e76
commit
8f93b41da7
@ -32,21 +32,21 @@
|
||||
public class EntityTypeImpl<X>
|
||||
extends AbstractIdentifiableType<X>
|
||||
implements EntityType<X>, Serializable {
|
||||
private final String jpaEntityName;
|
||||
private final String entityName;
|
||||
|
||||
public EntityTypeImpl(
|
||||
Class<X> javaType,
|
||||
AbstractIdentifiableType<? super X> superType,
|
||||
String jpaEntityName,
|
||||
String entityName,
|
||||
boolean hasIdentifierProperty,
|
||||
boolean isVersioned) {
|
||||
super( javaType, superType, hasIdentifierProperty, isVersioned );
|
||||
this.jpaEntityName = jpaEntityName;
|
||||
this.entityName = entityName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return jpaEntityName;
|
||||
return entityName;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -27,14 +27,15 @@
|
||||
import java.lang.reflect.Member;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.ParameterizedType;
|
||||
|
||||
import javax.persistence.OneToOne;
|
||||
import javax.persistence.metamodel.Attribute;
|
||||
import javax.persistence.metamodel.Attribute.PersistentAttributeType;
|
||||
import javax.persistence.metamodel.EntityType;
|
||||
import javax.persistence.metamodel.IdentifiableType;
|
||||
import javax.persistence.metamodel.PluralAttribute;
|
||||
import javax.persistence.metamodel.Type;
|
||||
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
import org.hibernate.annotations.common.AssertionFailure;
|
||||
import org.hibernate.engine.spi.SessionFactoryImplementor;
|
||||
import org.hibernate.jpa.metamodel.internal.AbstractIdentifiableType;
|
||||
@ -56,9 +57,7 @@
|
||||
import org.hibernate.tuple.entity.EntityMetamodel;
|
||||
import org.hibernate.type.ComponentType;
|
||||
import org.hibernate.type.EmbeddedComponentType;
|
||||
import org.hibernate.type.EntityType;
|
||||
|
||||
import static javax.persistence.metamodel.Attribute.PersistentAttributeType;
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
/**
|
||||
* A factory for building {@link Attribute} instances. Exposes 3 main services:<ol>
|
||||
@ -229,7 +228,7 @@ private <Y> Type<Y> getMetaModelType(AttributeTypeDescriptor attributeTypeDescri
|
||||
);
|
||||
}
|
||||
case ENTITY: {
|
||||
final org.hibernate.type.EntityType type = (EntityType) attributeTypeDescriptor.getHibernateType();
|
||||
final org.hibernate.type.EntityType type = (org.hibernate.type.EntityType) attributeTypeDescriptor.getHibernateType();
|
||||
return (Type<Y>) context.locateEntityTypeByName( type.getAssociatedEntityName() );
|
||||
}
|
||||
case EMBEDDABLE: {
|
||||
@ -261,9 +260,14 @@ private <Y> Type<Y> getMetaModelType(AttributeTypeDescriptor attributeTypeDescri
|
||||
private EntityMetamodel getDeclarerEntityMetamodel(IdentifiableType<?> ownerType) {
|
||||
final Type.PersistenceType persistenceType = ownerType.getPersistenceType();
|
||||
if ( persistenceType == Type.PersistenceType.ENTITY) {
|
||||
String entityName;
|
||||
if ( ownerType instanceof EntityType<?> ) {
|
||||
entityName = ( ( EntityType<?> ) ownerType ).getName();
|
||||
} else {
|
||||
entityName = ownerType.getJavaType().getName();
|
||||
}
|
||||
return context.getSessionFactory()
|
||||
.getEntityPersister( ownerType.getJavaType().getName() )
|
||||
.getEntityMetamodel();
|
||||
.getEntityPersister( entityName ).getEntityMetamodel();
|
||||
}
|
||||
else if ( persistenceType == Type.PersistenceType.MAPPED_SUPERCLASS) {
|
||||
return context.getSubClassEntityPersister( (MappedSuperclassTypeImpl) ownerType ).getEntityMetamodel();
|
||||
|
@ -113,7 +113,7 @@ private EntityTypeImpl buildEntityType(EntityBinding entityBinding) {
|
||||
EntityTypeImpl entityType = new EntityTypeImpl(
|
||||
javaType,
|
||||
superType,
|
||||
entityBinding.getJpaEntityName(),
|
||||
entityBinding.getEntityName(),
|
||||
entityBinding.getHierarchyDetails().getEntityIdentifier().getAttributeBinding() != null,
|
||||
entityBinding.isVersioned()
|
||||
);
|
||||
|
@ -1816,6 +1816,7 @@ private EntityBinding createEntityBinding( final EntitySource entitySource, fina
|
||||
entityClassName,
|
||||
bindingContext.makeClassReference( entityClassName ),
|
||||
superEntityBinding == null ? null : superEntityBinding.getEntity() ) );
|
||||
entityBinding.setEntityName( entitySource.getEntityName() );
|
||||
entityBinding.setJpaEntityName( entitySource.getJpaEntityName() ); //must before creating primary table
|
||||
entityBinding.setDynamicUpdate( entitySource.isDynamicUpdate() );
|
||||
entityBinding.setDynamicInsert( entitySource.isDynamicInsert() );
|
||||
|
@ -69,6 +69,7 @@ public class EntityBinding implements MutableAttributeBindingContainer {
|
||||
|
||||
private ValueHolder<Class<?>> proxyInterfaceType;
|
||||
|
||||
private String entityName;
|
||||
private String jpaEntityName;
|
||||
|
||||
private Class<? extends EntityPersister> customEntityPersisterClass;
|
||||
@ -433,6 +434,14 @@ public void addSynchronizedTableNames(java.util.Collection<String> synchronizedT
|
||||
this.synchronizedTableNames.addAll( synchronizedTableNames );
|
||||
}
|
||||
|
||||
public String getEntityName() {
|
||||
return entityName;
|
||||
}
|
||||
|
||||
public void setEntityName(String entityName) {
|
||||
this.entityName = entityName;
|
||||
}
|
||||
|
||||
public String getJpaEntityName() {
|
||||
return jpaEntityName;
|
||||
}
|
||||
|
@ -22,18 +22,15 @@
|
||||
* Boston, MA 02110-1301 USA
|
||||
*/
|
||||
package org.hibernate.test.entityname;
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.testing.FailureExpectedWithNewMetamodel;
|
||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author stliu
|
||||
*/
|
||||
@FailureExpectedWithNewMetamodel
|
||||
public class EntityNameFromSubClassTest extends BaseCoreFunctionalTestCase {
|
||||
@Override
|
||||
public String[] getMappings() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user