HHH-13217 - Don't throw exception if both @MappedSuperclass and @Inheritance are used
Make sure the @Inheritance annotation is ignored when used along with @MappedSuperclass
This commit is contained in:
parent
f086821abd
commit
5b11014c7c
|
@ -14,17 +14,20 @@ import javax.persistence.InheritanceType;
|
||||||
import javax.persistence.MappedSuperclass;
|
import javax.persistence.MappedSuperclass;
|
||||||
|
|
||||||
import org.hibernate.cfg.AnnotationBinder;
|
import org.hibernate.cfg.AnnotationBinder;
|
||||||
|
import org.hibernate.hql.internal.ast.QuerySyntaxException;
|
||||||
import org.hibernate.internal.CoreMessageLogger;
|
import org.hibernate.internal.CoreMessageLogger;
|
||||||
import org.hibernate.jpa.test.BaseEntityManagerFunctionalTestCase;
|
import org.hibernate.jpa.test.BaseEntityManagerFunctionalTestCase;
|
||||||
|
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.logger.LoggerInspectionRule;
|
import org.hibernate.testing.logger.LoggerInspectionRule;
|
||||||
import org.hibernate.testing.logger.Triggerable;
|
import org.hibernate.testing.logger.Triggerable;
|
||||||
|
import org.hibernate.testing.util.ExceptionUtil;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
|
|
||||||
|
import static org.hibernate.testing.transaction.TransactionUtil.doInJPA;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
@ -62,7 +65,18 @@ public class MappedSuperclassInheritanceTest extends BaseEntityManagerFunctional
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() {
|
public void test() {
|
||||||
|
doInJPA( this::entityManagerFactory, entityManager -> {
|
||||||
|
entityManager.createQuery("from Manager").getResultList();
|
||||||
|
entityManager.createQuery("from Developer").getResultList();
|
||||||
|
|
||||||
|
try {
|
||||||
|
//Check the @Inheritance annotation was ignored
|
||||||
|
entityManager.createQuery("from Employee").getResultList();
|
||||||
|
} catch (Exception expected) {
|
||||||
|
QuerySyntaxException rootException = (QuerySyntaxException) ExceptionUtil.rootCause(expected);
|
||||||
|
assertEquals("Employee is not mapped", rootException.getMessage());
|
||||||
|
}
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
|
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
|
||||||
|
|
Loading…
Reference in New Issue