关于hibernate-spring-dao的问题

时间:2010-03-05 16:47:43

标签: java hibernate dao

我有一个DAO类,我正在使用hibernate和Mysql数据库来尝试select / update / insert。我现在正在为这些编写方法,我已经写过这样的插入:

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。使用相同的逻辑我如何通过ID或更新人获取人。现在我也可以写删除:

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对我来说很容易)

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我认为你真正要求的(没有意识到)是“如何使用Hibernate查询任意非ID字段?”。

你应该看看the chapter in the reference manual about using HQL(Hibernate查询语言),这将允许你这样做。