2011-03-23 12 views
6

Je suis un débutant en hibernation et jusqu'à cette date, je n'ai pas rencontré de procédures stockées.hibernate et la procédure stockée

Quelqu'un peut-il me dire comment exécuter ce qui suit dans Hibernate, cette procédure stockée renvoie trois champs

date, balance, name_of_person 

exécutent des procédures de la DFD ' 'fdf' '34'

  1. Que je besoin de créer le bean de telle sorte que le bean a les champs suivants: date, solde, nom_de_personne

  2. Si j'ai besoin de créer le fichier de propriétés?

  3. Est-il possible d'utiliser des critères pour l'exécution de procédures dans Hibernate?

  4. Si je le NativeQuery est la seule option, alors comment puis-je créer le fichier de propriétés que je n'ai pas une telle table à la suite de la procédure

  5. Est-il possible d'utiliser requête native seul sans utiliser un fichier de haricots ou de la propriété, et d'imprimer les résultats

+0

Lire la documentation - http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/querysql.html#sp_query – skaffman

+2

double possible de [Appel d'une procédure stockée dans Hibernate ] (http://stackoverflow.com/questions/3681045/calling-a-stored-procedure-in-hibernate) –

Répondre

7

Voici un exemple simple: -

fichier de mapping Hibernate

<hibernate-mapping> 
    <sql-query name="mySp"> 
     <return-scalar column="date" type="date" /> 
     <return-scalar column="balance" type="long" /> 
     <return-scalar column="name_of_person" type="string" /> 

     { call get_balance_sp :name } 
    </sql-query> 
</hibernate-mapping> 

code

List<MyBean> list = sessionFactory.getCurrentSession() 
          .getNamedQuery("mySp") 
          .setParameter("name", name) 
          .setResultTransformer(Transformers.aliasToBean(MyBean.class)) 
          .list(); 

classe Bean

Ce haricot contient les résultats de la procédure stockée. Les noms de champs doivent correspondre aux noms de colonnes du fichier de mappage Hibernate.

public class MyBean { 
    private Date date; 
    private Long balance; 
    private String name_of_person; 

    // getters and setters 
} 
+0

Merci beaucoup! Simple et indestructible! – Vitalii