Коллекция Hibernate, загруженная пользовательским SQL - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть некоторые проблемы при попытке получить коллекцию сумок класса для загрузки через пользовательский sql. Вот xml отображения для моего класса

<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>

Но когда я запускаю приложение, я получаю сообщение об ошибке: org.hibernate.HibernateException: Errors in named queries: rolesQuery на этапе buildSessionFactory. Можете ли вы сказать мне, что не так с этим отображением? Я пробовал как с, так и без тега <return> внутри <sql-query>, но он все равно не работает

1 Ответ

0 голосов
/ 14 декабря 2011

Я обнаружил ошибку ... строка <load-collection alias="ruoli" role="alekso.npe.model.Ruolo" ></load-collection> внутри определения пользовательского запроса выдает ошибку. Без этой строки все работает нормально (почти ... коллекция ролей загружается лениво, даже если я везде задаю lazy = "false") Но эта строка, которую я удалил, находится в документации, поэтому я хотел бы знать, почему это неправильно. Я оставлю вопрос открытым для других, чтобы дать намеки на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...