package com.querydsl.apt.domain; import java.util.List; import org.junit.Assert; import org.junit.Test; import com.querydsl.core.annotations.QueryEntity; import com.querydsl.core.annotations.QuerySupertype; public class Generic8Test { @QuerySupertype public static class Superclass<T> { Long id; List<T> values; List<? extends T> values2; } @QueryEntity public static class IntermediateEntity<E> extends Superclass<E> { } @QueryEntity public static class Entity extends Superclass<String> { } @QueryEntity public static class Entity2 extends Superclass<Integer> { } @QueryEntity public static class Entity3 extends IntermediateEntity<String> { } @Test public void test() { Assert.assertEquals(String.class, QGeneric8Test_Entity.entity.values.getElementType()); Assert.assertEquals(Integer.class, QGeneric8Test_Entity2.entity2.values.getElementType()); Assert.assertEquals(String.class, QGeneric8Test_Entity3.entity3.values.getElementType()); } }