我有一个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对我来说很容易)
答案 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查询语言),这将允许你这样做。