2010-03-05 87 views
2

我有一个DAO类,我正用它来尝试使用hibernate和Mysql数据库选择/更新/插入。我写这些方法现在,我已经写了插入这样的:关于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; 
     } 
    } 

我有3列,一个是id,第二个是name,第三个是surname。使用相同的逻辑,我怎样才能通过身份证或更新人获得人。现在我也可以写删除:

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; 
     } 
    } 

我可以删除或更新,如果我可以通过ID获取People对象,但我不知道如何。谢谢(是的,我试图学习java-spring-hibernate对我来说很容易)

回答

0

我想你真正问的是什么(没有意识到)是“我如何查询任意非ID字段冬眠?”。

你应该看看the chapter in the reference manual about using HQL(Hibernate查询语言),它可以让你做到这一点。

+0

@马特b口去trought它,仍然没有..你也许更多的东西从地上起来..这似乎是相当先进的,以我 – ant 2010-03-08 09:55:23

1

这听起来像你想要做这样的事情:

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