package com.querydsl.apt.domain;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.MappedSuperclass;
import org.junit.Test;
public class Generic15Test extends AbstractTest {
@MappedSuperclass
public abstract static class Compound<T extends Containable> {
private Set<T> containables = new HashSet<T>();
}
@MappedSuperclass
public abstract static class Containable<T extends Compound> {
private T compound;
}
@Entity
public static class MyCompound extends Compound<MyContainable> {
}
@Entity
public static class MyContainable extends Containable<MyCompound> {
private String additionalField;
}
@Test
public void test() throws IllegalAccessException, NoSuchFieldException {
start(QGeneric15Test_MyContainable.class, QGeneric15Test_MyContainable.myContainable);
match(QGeneric15Test_MyCompound.class, "compound");
matchType(MyCompound.class, "compound");
}
}