2011-11-24 1 views
3

엔티티 스타일 개체에 테이블 값의 일부만 가져옵니다. 이 값은 그래픽 인터페이스에서 조작됩니다.부분적으로 채워진 엔티티 개체 및 업데이트 중에 일관된 데이터 유지

문제는 수정하지 않은 값을 변경하지 않고 덮어 쓰는 대신 업데이트를 덮어 쓸 수 있다는 것입니다.

이 문제를 해결할 적절한 방법은 무엇입니까? 부분 업데이트를 수행하거나 편집 목적으로 새로운 엔티티 객체를 만드는 메소드를 작성해야합니까?

답변

2

나는 이것이 어떻게 가장 잘 처리되는지 궁금합니다. 어떤 프로젝트에서, "bean의 null 값은 값을 건드리지 않았다는 것을 의미합니다"와 같은 가정을 할 수있는 프로젝트에서, 모든 필드를 "업데이트"하기 위해 UPDATE 문을 작성하고, null이 아닌 경우 해당 값을 bean의 값으로 설정했습니다 그렇지 않으면 열 값을 db의 기존 열 값으로 설정합니다.

UPDATE entity 
    SET propertyA = NVL(newPropertyA, propertyA) 
    ,propertyB = NVL(newPropertyB, propertyB) 
    ,propertyC = NVL(newPropertyC, propertyC) 
    ,... 
2

귀하의 태그에서 귀하의 프로젝트에서 ibatis (mybatis)를 사용하고 있음을 이해합니다.

그래서 당신은 같은 당신의 업데이트 매퍼에서 추가 검사 할 수 있습니다 :

<update id="update" parameterType="Client"> 
    update user 
    <set> 
     <if test="Name != null"> 
      NAME=#{Name}, 
     </if> 
     <if test="First_Name != null"> 
      FIRST_NAME=#{First_Name} 
     </if> 
    </set> 
</update>