diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/ExtendedTypeFactory.java b/querydsl-apt/src/main/java/com/mysema/query/apt/ExtendedTypeFactory.java index b840a12bc..18054e14a 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/ExtendedTypeFactory.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/ExtendedTypeFactory.java @@ -115,6 +115,7 @@ public final class ExtendedTypeFactory { TypeElement typeElement = (TypeElement)declaredType.asElement(); switch(typeElement.getKind()){ case ENUM: return createEnumType(declaredType, typeElement, p); + case ANNOTATION_TYPE: case CLASS: return createClassType(declaredType, typeElement, p); case INTERFACE: return createInterfaceType(declaredType, typeElement, p); default: throw new IllegalArgumentException("Illegal type " + typeElement); diff --git a/querydsl-apt/src/test/java/com/mysema/query/domain/AnnotationTypeTest.java b/querydsl-apt/src/test/java/com/mysema/query/domain/AnnotationTypeTest.java new file mode 100644 index 000000000..326503f43 --- /dev/null +++ b/querydsl-apt/src/test/java/com/mysema/query/domain/AnnotationTypeTest.java @@ -0,0 +1,33 @@ +package com.mysema.query.domain; + +import java.lang.annotation.Annotation; + +import javax.persistence.Embeddable; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +import org.junit.Ignore; + +@Ignore +public class AnnotationTypeTest { + + @MappedSuperclass + public static abstract class BaseObject { + + } + + @Entity + public static class Person extends BaseObject { + @Id + private Long id; + } + + @Embeddable + public static class Address extends BaseObject { + @EmbeddedId + private String street; + } + +}