【问题标题】:Hibernate collection loaded by custom SQL自定义 SQL 加载的 Hibernate 集合
【发布时间】:2011-12-14 17:30:32
【问题描述】:

我在尝试获取要通过自定义 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 阶段。 你能告诉我这个映射有什么问题吗? 我尝试了在&lt;sql-query&gt; 中使用和不使用&lt;return&gt; 标记,但它仍然不起作用

【问题讨论】:

    标签: sql hibernate hibernate-mapping


    【解决方案1】:

    我发现了错误...自定义查询定义中的&lt;load-collection alias="ruoli" role="alekso.npe.model.Ruolo" &gt;&lt;/load-collection&gt; 行给出了错误。 没有那条线,一切正常(几乎......角色集合是延迟加载的,即使我在任何地方都设置了lazy="false")。 但是我删除的那一行在文档上,所以我想知道为什么它是错误的。 我会把这个问题留给其他人来提供一些提示。

    【讨论】:

    • 对延迟加载问题有任何见解?
    猜你喜欢
    • 2011-02-22
    • 2015-04-22
    • 2015-07-04
    • 2016-12-21
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多