확장 할 수있는 일반 클래스와 확장 할 수있는 일반 자식 멤버가 있습니다. 나는 Hibernate HQL에서 SpecialGroup의 특별한 속성을 기반으로 SpecialGroupMembers를 선택하기를 원하기 때문에 SpecialGroupMember의 그룹 참조를 "Group"대신에 SpecialGroup으로 만들고자한다. 아래의 설정에서, Hibernate는 다음 질의에 대해 에러를 던질 것이다.Java Generics 하위 하위 참조 하위/하위 클래스 속성 선택
from SpecialGroupMember sgm inner join sgm.group grp where grp.special = true;
public class Group<T extends GroupMember>{
private List<T> members;
}
public class SpecialGroup extends Group<SpecialMember>{
private boolean special;
}
public class GroupMember{
private Group<? extends GroupMember> group;
}
public class SpecialGroupMember extends GroupMember{
private boolean something;
}
어떤 의미로 이것을 어떻게 설정 하는가?