2014-01-16 2 views
1

나는 다음과 같은 클래스가 :최대 절전 모드 단일 테이블 상속 가입

가이드 클래스 :

public abstract class Guide 
{ 
    private Long idGuide; 
    private String name; 

    private GuideContainer parent; 
    /** GETTERS & SETTERS*/ 
} 

GuideContainer :

public class GuideContainer extends Guide 
{  
    private Guide children; 
/** GETTER & SETTERS */ 
} 

GuideFile 다음과

public class GuideFile extends Guide 
{ 
    private String uri; 
/**GETTERS & SETTERS */ 
} 

을 다음 매핑 : 가이드 :

<hibernate-mapping> 
    <class name="Guide" table="guides" abstract="true"> 
     <id name="idGuide" type="integer" column="idGuide"> 
      <generator class="assigned" /> 
     </id> 
     <property name="name" type="java.lang.String" column="name" /> 
     <discriminator column="type" type="java.lang.String" /> 

     <many-to-one class="GuideContainer" fetch="join" name="parent"> 
      <column name="parent" /> 
     </many-to-one> 
    </class> 
</hibernate-mapping> 

GuideFile :

<hibernate-mapping> 
    <subclass extends="Guide" name="GuideFile" discriminator-value="file"> 
     <property name="uri" type="java.lang.String" column="uri" /> 
    </subclass> 
</hibernate-mapping> 

GuideContainer :

<hibernate-mapping> 
    <subclass extends="Guide" name="GuideContainer" discriminator-value="container"> 
     <set fetch="select" inverse="true" lazy="true" name="children" sort="unsorted" table="children"> 
      <key> 
       <column name="parent" not-null="false" /> 
      </key> 
      <one-to-many class="Guide" /> 
     </set> 
    </subclass> 
</hibernate-mapping> 

나는 주어진 부모

Query query = getSession().createQuery("from Guide g where parent = :parent order by type").setParameter("parent", parent); 
     List<Guide> guides= query.list(); 
     return guides; 

내가 모든 가이드를 얻으려고 팔로워 받기 보내고 예외 : 내가 잘못 뭐하는 거지

java.lang.IllegalArgumentException: object is not an instance of declaring class 

:

IllegalArgumentException occurred calling getter of Guide.idGuide 

그리고 그 이후

?

답변

0

해결되었습니다. 검색어는 다음과 같아야합니다.

from Guide g where parent.idGuide = :parent order by type