2010-04-18 46 views
0

我沒有使用HibernateTemplate,而是在我的DAO中使用getCurrentSession()。Spring 2.5 Hibernate 3.5 NamedQuery

我想知道如何在beans.xml文件中聲明Hibernate命名查詢(我不使用hbm.xml)。

也許Spring有替代方法來聲明Hibernate命名查詢?

回答

1

你可以使用註解把命名查詢的實體:

@NamedQueries({@NamedQuery(name="Entity.findAll", query="....")}) 

此外,如果使用JPA,有orm.xml,該XSD告訴我們,你可以使用:

<named-query name="Entity.findAll"> 
    <query><![CDATA[SELECT e FROM Entity e]]</query> 
</named-query> 
+0

@Bozho嗯,我正如我所說的,不要使用orm.xml。你可以把你所有的hibernate設置,包括直接映射類到spring beans.xml文件。所以我想知道如何把一個命名查詢THERE。但@NamesQueries註釋看起來更好,你把它放在哪裏?正確進入DAO代碼? – EugeneP 2010-04-18 16:37:47

+0

將它放在實體類上。你說你不使用hbm.xml,而不是使用orm.xml。我以某種方式假定您正在使用JPA xml文件(因爲beans.xml不是在春天的默認名稱)。 – Bozho 2010-04-18 21:54:05