2010-03-05 11 views
2

J'ai une classe DAO que j'utilise pour essayer de sélectionner/mettre à jour/insérer avec hibernate et base de données Mysql. Je vous écris ces méthodes pour l'instant, je l'ai déjà écrit insert comme ceci:Question sur hibernate-spring-dao

public Long save(People transientInstance) { 
     log.debug("Saving People instance"); 
     try { 
      Long id = (Long)getHibernateTemplate().save(transientInstance); 
      log.debug("save successful with id #" + id); 
      return id; 
     } catch (RuntimeException re) { 
      log.error("save failed", re); 
      throw re; 
     } 
    } 

J'ai un 3 colonnes, on est id, la deuxième est name, troisième est surname. En utilisant la même logique, comment puis-je obtenir la personne par ID ou mettre à jour la personne. Maintenant, je peux supprimer écrit aussi:

public void delete(People persistentInstance) { 
     log.debug("deleting People instance"); 
     try { 
      getHibernateTemplate().delete(persistentInstance); 
      log.debug("delete successful"); 
     } catch (RuntimeException re) { 
      log.error("delete failed", re); 
      throw re; 
     } 
    } 

je pouvais supprimer ou mettre à jour si je pouvais obtenir les objectent par ID, mais je ne sais pas comment. Merci (oui j'essaye d'apprendre java-spring-hibernate allez-y doucement sur moi svp)

Répondre

0

Je pense que ce que vous demandez vraiment (sans le savoir) est "comment puis-je rechercher des champs arbitraires sans ID avec Hiberner?".

Vous devriez jeter un oeil à the chapter in the reference manual about using HQL (Hibernate Query Language), ce qui vous permettra de le faire.

+0

Je suis allé b @ Matt trought et toujours rien .. vous peut-être quelque chose de plus à partir du sol .. cela me semble assez avancé pour – ant

1

On dirait que vous voulez faire quelque chose comme ceci:

public void updatePeople(Long id, String surname) { 
    People p = getHibernateTemplate().get(People.class, id) 
    p.setSurname(surname); 
    getHibernateTemplate().update(p); 
}