1

我目前正在设置一个 Spring MVC / Hibernate 应用程序,它将存储一个人员数据库。

我已经使用以下教程进行了设置(已删除评论): http: //krams915.blogspot.co.uk/2011/01/spring-mvc-3-hibernate-annotations.html

public void edit(Person person) {
  logger.debug("Editing existing person");
  Session session = sessionFactory.getCurrentSession();
  Person existingPerson = (Person) session.get(Person.class, person.getId());
  existingPerson.setFirstName(person.getFirstName());
  existingPerson.setLastName(existingPerson.getLastName());
  existingPerson.setMoney(existingPerson.getMoney());
  session.save(existingPerson);
}

有没有一种方法可以更新整个人,而不必指定每个更新的字段(例如existingPerson.setFirstName(person.getFirstName());)?随着项目的扩展,我希望能够根据需要轻松添加尽可能多的字段,而不必每次都更新此类。

在评论中,有一些建议session.update(page); 会起作用,但这只会引发错误(具有相同标识符值的不同对象已与会话相关联)。

4

1 回答 1

0

How is Person parameter of the function getting created.? Since id is already present for that object, I assume it is fetched from database before function call.

So just a session.save(person) should work in that case.

于 2012-11-18T18:16:56.057 回答