From 41fd689d5fd30b68f69fef0faec150ed0817dcb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Thu, 24 May 2012 22:32:28 +0300 Subject: [PATCH] #153 fixed annotation handling issues --- .../mysema/query/apt/ExtendedTypeFactory.java | 1 + .../query/domain/AnnotationTypeTest.java | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 querydsl-apt/src/test/java/com/mysema/query/domain/AnnotationTypeTest.java 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; + } + +}