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

関数の Person パラメータはどのように作成されますか? そのオブジェクトの id は既に存在するため、関数呼び出しの前にデータベースからフェッチされると想定しています。

したがって、その場合は session.save(person) だけが機能するはずです。

于 2012-11-18T18:16:56.057 に答える