2011-12-14 13 views
0

によってロードされました。カスタムSQLを介してロードされるクラスのバッグコレクションを取得しようとするといくつかの問題があります。 はここに私のクラスのために私が持っているXMLマッピングHibernateコレクションがカスタムSQL

<hibernate-mapping> 
<class name="alekso.npe.model.Utente" table="VNPEZZ_UTE_MAT" lazy="false"> 
    <id name="matricola" column="C_UTE_MAT">    
    </id>  
    <property name="nome" column="T_NOM" /> 
    <property name="cognome" column="T_COG" /> 
    <property name="email" column="T_EML" /> 

    <bag name="ruoli" table="VNPEZX_UTE_APP_TRN" 
     inverse="false" lazy="true" fetch="select" cascade="all" > 
     <key column="C_UTE_MAT" /> 
     <one-to-many class="alekso.npe.model.Ruolo" /> 
     <loader query-ref="rolesQuery"/> 
    </bag> 
</class> 
    <class name="alekso.npe.model.Ruolo" table="VNPEZH_TIP_USR" 
    lazy="false" where="C_APP = 'NPE'"> 
    <id name="codice" column="C_TIP_USR">    
    </id> 
    <property name="nome" column="T_DES_TIP_USR"/>  

</class> 
<sql-query name="rolesQuery"> 
    <return alias="role" class="alekso.npe.model.Ruolo"></return> 
    <load-collection alias="ruoli" role="alekso.npe.model.Ruolo" ></load-collection> 
    <![CDATA[select {ruolo.*} 
    from NPEA.vnpezx_ute_app_trn permesso join NPEA.vnpezh_tip_usr ruolo 
     on ruolo.c_tip_usr = permesso.c_tip_usr 
     where permesso.c_app = 'NPE' 
     and permesso.c_ute_mat = :matricola ]]> 
</sql-query> 
</hibernate-mapping> 

だが、私は、アプリケーションを実行すると、私はエラーを取得する:buildSessionFactory段階で org.hibernate.HibernateException: Errors in named queries: rolesQuery。 このマッピングで何が問題なのか教えてください。 は、私はと<sql-query>内部<return>タグなしの両方試してみましたが、私はエラーを発見

答えて

0

それはまだ動作しません...カスタムクエリ定義内側の線<load-collection alias="ruoli" role="alekso.npe.model.Ruolo" ></load-collection>はエラーになります。 その行がなければ、すべて正常に動作します(ほとんどの場合、lazy = "false"をどこにでも設定しても、ロールのコレクションは遅延ロードされます)。 私が削除した行はドキュメント上にあるので、間違っている理由を知りたいのですが。 私は他の人に質問を残して、これにいくつかのヒントを与えます。

+0

怠惰な読み込みの問題を理解してください。 – jbird

関連する問題