[hibernate-commits] Hibernate SVN: r19241 - core/trunk/annotations/src/main/java/org/hibernate/cfg.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Fri Apr 16 06:11:32 EDT 2010
Author: epbernard
Date: 2010-04-16 06:11:32 -0400 (Fri, 16 Apr 2010)
New Revision: 19241
Modified:
core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
Log:
HHH-5125 Raise proper exception when @Entity and @MappedSuperclass are present on the same class
Modified: core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java
===================================================================
--- core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java 2010-04-15 09:37:36 UTC (rev 19240)
+++ core/trunk/annotations/src/main/java/org/hibernate/cfg/AnnotationBinder.java 2010-04-16 10:11:32 UTC (rev 19241)
@@ -504,6 +504,13 @@
public static void bindClass(
XClass clazzToProcess, Map<XClass, InheritanceState> inheritanceStatePerClass, ExtendedMappings mappings
) throws MappingException {
+ //@Entity and @MappedSuperclass on the same class leads to a NPE down the road
+ if ( clazzToProcess.isAnnotationPresent( Entity.class )
+ && clazzToProcess.isAnnotationPresent( MappedSuperclass.class ) ) {
+ throw new AnnotationException( "An entity cannot be annotated with both @Entity and @MappedSuperclass: "
+ + clazzToProcess.getName() );
+ }
+
//TODO: be more strict with secondarytable allowance (not for ids, not for secondary table join columns etc)
InheritanceState inheritanceState = inheritanceStatePerClass.get( clazzToProcess );
AnnotatedClassType classType = mappings.getClassType( clazzToProcess );
More information about the hibernate-commits
mailing list