mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-17 08:35:13 +00:00
HHH-7762 Discriminators broken on abstract superclass with no
@DiscriminatorValue
This commit is contained in:
parent
51e7504a50
commit
4af03102e4
@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
import static org.hibernate.engine.spi.SyntheticAttributeHelper.SYNTHETIC_COMPOSITE_ID_ATTRIBUTE_NAME;
|
import static org.hibernate.engine.spi.SyntheticAttributeHelper.SYNTHETIC_COMPOSITE_ID_ATTRIBUTE_NAME;
|
||||||
|
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -75,9 +76,9 @@
|
|||||||
import org.hibernate.metamodel.spi.binding.IdGenerator;
|
import org.hibernate.metamodel.spi.binding.IdGenerator;
|
||||||
import org.hibernate.metamodel.spi.binding.IndexedPluralAttributeBinding;
|
import org.hibernate.metamodel.spi.binding.IndexedPluralAttributeBinding;
|
||||||
import org.hibernate.metamodel.spi.binding.InheritanceType;
|
import org.hibernate.metamodel.spi.binding.InheritanceType;
|
||||||
|
import org.hibernate.metamodel.spi.binding.ManyToManyPluralAttributeElementBinding;
|
||||||
import org.hibernate.metamodel.spi.binding.ManyToOneAttributeBinding;
|
import org.hibernate.metamodel.spi.binding.ManyToOneAttributeBinding;
|
||||||
import org.hibernate.metamodel.spi.binding.MetaAttribute;
|
import org.hibernate.metamodel.spi.binding.MetaAttribute;
|
||||||
import org.hibernate.metamodel.spi.binding.ManyToManyPluralAttributeElementBinding;
|
|
||||||
import org.hibernate.metamodel.spi.binding.OneToManyPluralAttributeElementBinding;
|
import org.hibernate.metamodel.spi.binding.OneToManyPluralAttributeElementBinding;
|
||||||
import org.hibernate.metamodel.spi.binding.OneToOneAttributeBinding;
|
import org.hibernate.metamodel.spi.binding.OneToOneAttributeBinding;
|
||||||
import org.hibernate.metamodel.spi.binding.PluralAttributeBinding;
|
import org.hibernate.metamodel.spi.binding.PluralAttributeBinding;
|
||||||
@ -802,7 +803,9 @@ private void bindDiscriminator( final EntityBinding rootEntityBinding, final Roo
|
|||||||
if ( discriminatorValue != null ) {
|
if ( discriminatorValue != null ) {
|
||||||
rootEntityBinding.setDiscriminatorMatchValue( discriminatorValue );
|
rootEntityBinding.setDiscriminatorMatchValue( discriminatorValue );
|
||||||
}
|
}
|
||||||
else {
|
else if ( !Modifier.isAbstract( bindingContext().locateClassByName( rootEntitySource.getEntityName() ).getModifiers() ) ) {
|
||||||
|
// Use the class name as a default if no dscriminator value.
|
||||||
|
// However, skip abstract classes -- obviously no discriminators there.
|
||||||
rootEntityBinding.setDiscriminatorMatchValue( rootEntitySource.getEntityName() );
|
rootEntityBinding.setDiscriminatorMatchValue( rootEntitySource.getEntityName() );
|
||||||
}
|
}
|
||||||
// Configure discriminator hibernate type
|
// Configure discriminator hibernate type
|
||||||
|
@ -23,9 +23,13 @@
|
|||||||
*/
|
*/
|
||||||
package org.hibernate.test.annotations.inheritance;
|
package org.hibernate.test.annotations.inheritance;
|
||||||
|
|
||||||
import java.util.List;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import org.junit.Test;
|
import java.util.List;
|
||||||
|
|
||||||
import org.hibernate.Query;
|
import org.hibernate.Query;
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
@ -37,19 +41,12 @@
|
|||||||
import org.hibernate.test.annotations.inheritance.singletable.Music;
|
import org.hibernate.test.annotations.inheritance.singletable.Music;
|
||||||
import org.hibernate.test.annotations.inheritance.singletable.Noise;
|
import org.hibernate.test.annotations.inheritance.singletable.Noise;
|
||||||
import org.hibernate.test.annotations.inheritance.singletable.Rock;
|
import org.hibernate.test.annotations.inheritance.singletable.Rock;
|
||||||
import org.hibernate.testing.FailureExpectedWithNewMetamodel;
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
import org.junit.Test;
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
import static org.junit.Assert.assertFalse;
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Emmanuel Bernard
|
* @author Emmanuel Bernard
|
||||||
*/
|
*/
|
||||||
@FailureExpectedWithNewMetamodel
|
|
||||||
public class SubclassTest extends BaseCoreFunctionalTestCase {
|
public class SubclassTest extends BaseCoreFunctionalTestCase {
|
||||||
@Override
|
@Override
|
||||||
protected boolean isCleanupTestDataRequired() {
|
protected boolean isCleanupTestDataRequired() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user