현재 Spring MVC/Hibernate 애플리케이션을 설정 중이다.이 애플리케이션은 사람들의 데이터베이스를 저장할 것이다.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);가 작동하지만이 작업은 오류 ()와 동일한 식별자 값을 가진 다른 객체가 이미 세션과 연결되어 있습니다.
'사람이 updatedAndPersistentPerson = session.merge (사람)'을 사용하십시오. –
나는 이것을 시험해 보았고, session.merge (person)는 나머지없이 잘 작동하는 것처럼 보인다. – Toby
나머지는'session.merge (person)'의 결과를 변수에 할당하는 것으로 만 구성됩니다. 'update()'와'persist()'와는 달리, merge()는 분리 된 엔티티의 상태가 복사 된 첨부 된 엔티티 인 것을 알려주는 것입니다. 첨부 된 엔티티를 사용하여 다른 작업을하려면 메서드의 인수가 수정되지 않고 분리되어 있기 때문에 메서드의 결과를 사용해야합니다. –