2010-04-18 5 views
0

Je n'utilise pas HibernateTemplate, mais je travaille avec getCurrentSession() dans mon DAO.Spring 2.5 Hibernate 3.5 NamedQuery

Je voudrais savoir comment déclarer les requêtes nommées Hibernate dans un fichier beans.xml (je n'utilise pas hbm.xml). Et peut-être que Spring a d'autres moyens de déclarer les requêtes nommées Hibernate?

Répondre

1

Vous pouvez mettre des requêtes nommées sur l'entité utilisant des annotations:

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

En outre, si vous utilisez JPA, il y a orm.xml, Le XSD nous dit que vous pouvez utiliser:

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

@Bozho Eh bien, je n'utilisez pas orm.xml comme je l'ai dit. Vous pouvez mettre tous vos paramètres d'hibernation, y compris les classes de mappage directement dans le fichier spring beans.xml. Je me demande donc comment mettre une requête nommée là. Mais l'annotation @NamesQueries est meilleure, où la mettez-vous? Droit dans le code DAO? – EugeneP

+0

Mettez-le dans la classe d'entité. Et vous avez dit que vous n'utilisez pas hbm.xml, pas orm.xml. Je suppose en quelque sorte que vous utilisez des fichiers XML JPA (car beans.xml n'est pas le nom par défaut au printemps). – Bozho