diff --git a/src/java/org/codehaus/groovy/grails/compiler/injection/DefaultGrailsDomainClassInjector.java b/src/java/org/codehaus/groovy/grails/compiler/injection/DefaultGrailsDomainClassInjector.java index 7d792d82dce..bdc5eb131f5 100644 --- a/src/java/org/codehaus/groovy/grails/compiler/injection/DefaultGrailsDomainClassInjector.java +++ b/src/java/org/codehaus/groovy/grails/compiler/injection/DefaultGrailsDomainClassInjector.java @@ -196,8 +196,7 @@ private void injectVersionProperty(ClassNode classNode) { final boolean hasVersion = GrailsASTUtils.hasOrInheritsProperty(classNode, GrailsDomainClassProperty.VERSION); if (!hasVersion) { - ClassNode parent = GrailsASTUtils.getFurthestParent(classNode); - parent.addProperty(GrailsDomainClassProperty.VERSION, Modifier.PUBLIC, new ClassNode(Long.class), null, null, null); + classNode.addProperty(GrailsDomainClassProperty.VERSION, Modifier.PUBLIC, new ClassNode(Long.class), null, null, null); } } @@ -205,10 +204,7 @@ private void injectIdProperty(ClassNode classNode) { final boolean hasId = GrailsASTUtils.hasOrInheritsProperty(classNode, GrailsDomainClassProperty.IDENTITY); if (!hasId) { - // inject into furthest relative - ClassNode parent = GrailsASTUtils.getFurthestParent(classNode); - - parent.addProperty(GrailsDomainClassProperty.IDENTITY, Modifier.PUBLIC, new ClassNode(Long.class), null, null, null); + classNode.addProperty(GrailsDomainClassProperty.IDENTITY, Modifier.PUBLIC, new ClassNode(Long.class), null, null, null); } } diff --git a/src/test/org/codehaus/groovy/grails/orm/hibernate/AbstractJavaClass.java b/src/test/org/codehaus/groovy/grails/orm/hibernate/AbstractJavaClass.java new file mode 100644 index 00000000000..f2de4d9e4b6 --- /dev/null +++ b/src/test/org/codehaus/groovy/grails/orm/hibernate/AbstractJavaClass.java @@ -0,0 +1,4 @@ +package org.codehaus.groovy.grails.orm.hibernate; + +public class AbstractJavaClass { +} diff --git a/src/test/org/codehaus/groovy/grails/orm/hibernate/JavaInheritanceTests.groovy b/src/test/org/codehaus/groovy/grails/orm/hibernate/JavaInheritanceTests.groovy new file mode 100644 index 00000000000..982b784ad95 --- /dev/null +++ b/src/test/org/codehaus/groovy/grails/orm/hibernate/JavaInheritanceTests.groovy @@ -0,0 +1,19 @@ +package org.codehaus.groovy.grails.orm.hibernate + +class JavaInheritanceTests extends AbstractGrailsHibernateTests{ + protected void onSetUp() { + gcl.parseClass ''' +import grails.persistence.* + +@Entity +class MyDomainClass extends org.codehaus.groovy.grails.orm.hibernate.AbstractJavaClass { + String someProperty +} +''' + } + + void testInheritingFromAbstractJavaClass() { + def mdc = ga.getDomainClass("MyDomainClass") + assertNotNull 'MyDomainClass is not considered a domain class', mdc + } +}