簡體   English   中英

休眠命名查詢不知道錯誤

[英]Hibernate Named query not know error

我不知道為什么,但是當我將此項目導入Eclipse時。 這個工作很好。

所以,我認為這是導入InteliJ IDEA時的Eclipse項目問題


如此難以想象。

我有用於映射休眠的類Setting和Setting.hbm.xml。 在本課程中:

<hibernate-mapping>
<class name="Setting" table="setting" lazy="false">
    <id name="id" column="id" type="integer">
        <generator class="increment" />
    </id>

    .....
</class>

<query name="select.setting">
    from Setting as s where s.id = ? order by s.name
</query>

現在,當我調用函數

this.getHibernateTemplate().findByNamedQuery("select.setting", params);

此返回錯誤

org.springframework.orm.hibernate4.HibernateSystemException: Named query not known: select.setting; nested exception is org.hibernate.MappingException: Named query not known: select.setting
at org.springframework.orm.hibernate4.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:218) ~[spring-orm-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.orm.hibernate4.HibernateTemplate.doExecute(HibernateTemplate.java:343) ~[spring-orm-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.orm.hibernate4.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:308) ~[spring-orm-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.orm.hibernate4.HibernateTemplate.findByNamedQuery(HibernateTemplate.java:933) ~[spring-orm-4.1.6.RELEASE.jar:4.1.6.RELEASE]

請提供建議。

您可以嘗試一下。

<query name="select.setting">
    <![CDATA[from Setting as s where s.id = ? order by s.name]]>
</query>

XML解析器對您未使用CDATA標記感到困惑。 CDATA是一種告訴框架其數據不應被解釋為標記的方式。

因此,如@Lovababu所述,在CDATA標記內包含查詢:

<query name="select.setting">
<![CDATA[from Setting as s where s.id = ? order by s.name]]>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM