package com.querydsl.apt.domain; import java.io.Serializable; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.MappedSuperclass; import org.junit.Test; public class Generic2Test extends AbstractTest { public static class Range<T extends Comparable<? super T>> { private T min; private T max; public T getMin() { return min; } public void setMin(T min) { this.min = min; } public T getMax() { return max; } public void setMax(T max) { this.max = max; } } @MappedSuperclass public abstract static class BaseEntity<T extends Comparable<? super T>> implements Serializable { @Embedded private Range<T> range; public Range<T> getRange() { return range; } public void setRange(Range<T> range) { this.range = range; } } @Entity public static class Foo extends BaseEntity<Integer> { } @Test public void test() throws NoSuchFieldException { start(QGeneric2Test_Foo.class, QGeneric2Test_Foo.foo); assertPresent("range"); match(QGeneric2Test_Range.class, "range"); } }