From f89f7b59f1bb20d170aa2886a6886e67f6c66fd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Mon, 4 Jul 2011 13:05:11 +0000 Subject: [PATCH] #786195 : test for embeddable usage --- .../java/com/mysema/query/apt/Processor.java | 9 +++- .../query/domain/EmbeddableDeepTest.java | 53 +++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 querydsl-apt/src/test/java/com/mysema/query/domain/EmbeddableDeepTest.java diff --git a/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java b/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java index b9b00f889..28d7e4af3 100644 --- a/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java +++ b/querydsl-apt/src/main/java/com/mysema/query/apt/Processor.java @@ -123,9 +123,16 @@ public class Processor { processAnnotations(); // remove entity types from extensionTypes - for (String key : entityTypes.keySet()){ + for (String key : entityTypes.keySet()) { extensionTypes.remove(key); } + + // remove super types from others + for (String key : actualSupertypes.keySet()) { + entityTypes.remove(key); + extensionTypes.remove(key); + embeddables.remove(key); + } serializeTypes(); diff --git a/querydsl-apt/src/test/java/com/mysema/query/domain/EmbeddableDeepTest.java b/querydsl-apt/src/test/java/com/mysema/query/domain/EmbeddableDeepTest.java new file mode 100644 index 000000000..aabbd40d0 --- /dev/null +++ b/querydsl-apt/src/test/java/com/mysema/query/domain/EmbeddableDeepTest.java @@ -0,0 +1,53 @@ +package com.mysema.query.domain; + +import java.io.Serializable; + +import javax.persistence.Embeddable; +import javax.persistence.Embedded; +import javax.persistence.Entity; +import javax.persistence.MappedSuperclass; + +import org.junit.Ignore; + +@Ignore +@SuppressWarnings("serial") +public class EmbeddableDeepTest { + + public enum SomeType { + a, b; + } + + @MappedSuperclass + public abstract class AValueObject implements Cloneable, Serializable { + + } + + @MappedSuperclass + public abstract class AEntity extends AValueObject { + + } + + @Entity + public class A extends AEntity { + + @Embedded + B b; + + } + + @Embeddable + public class B extends AValueObject { + + @Embedded + C c; + + } + + @Embeddable + public class C extends AValueObject { + + SomeType someType; + + } + +}