2011-12-21 4 views
0

이 시나리오에서 가장 좋은 방법은 무엇입니까? 테이블이있어서 테이블의 행을 업데이트하고 싶습니다. 테이블의 줄 중 하나와 관련된 새로운 임시 개체가 제공되지만 일부 정보가 다릅니다 (업데이트해야하는 정보). DB에서 개체를 검색하고 하나의 영구 개체와 하나의 임시 개체를 가지고 DB 개체를 업데이트해야합니다.최대 절전 모드 개체를 임시 개체로 업데이트

나는 Hibernate와 MySql을 사용하고있다.

최상의 접근 방법은 무엇입니까?

EDIT : 개체가 다른 테이블에 대한 외래 키와 매우 복잡합니다.

감사합니다. 로넨.

답변

0

일시적인 개체를 영구적으로 만들어야합니다. 당신은 세션과 연결하여 같은를 만들 response.but의 습관에 대한

. 
. 
. 
fritz.setColor(persistentObject.getColor()); 
fritz.setId(persistentObject.getId()); 
. 
. 
. 
+0

감사를 다음과 같이

DomesticCat fritz = new DomesticCat(); fritz.setColor(Color.GINGER); fritz.setSex('M'); fritz.setName("Fritz"); sess.update(fritz);

당신은 일시적인 객체의 값을 설정하는 영속 객체를 사용하여 다음과 그렇게 같은 데이터를 가진 새로운 엔트리. 기존 행을 업데이트하고 중복 행을 만들지 않습니다. 또한 엔티티 (내 고양이)는 다른 테이블에 외래 키가있는 extreamly 복잡합니다. – rperez

+0

@rperez : 새 개체가 기존 데이터베이스 행과 동일한 ID를 갖고 있으면 아니오, 해당 행을 업데이트합니다. –

+0

Tom, 새 개체는 일시적이므로 ID가 없으며 ID 생성 정책은 저장시 ID가 설정된다는 것입니다. 수동으로 설정하고 영구 객체와 이미 연결된 행으로 업데이트 할 수 없습니다. 나는 무엇을 놓치고 있습니까? – rperez

관련 문제