내 응용 프로그램의 엔터티에 DB 엔터티와 다른 데이터가 들어있을 때마다 데이터베이스의 엔터티를 업데이트하려고합니다.DB에서 엔티티를 효과적으로 업데이트하는 방법은 무엇입니까?
내 업데이트 방법은 다음과 같습니다
@Transactional
public void updateEntity(String a, String b, boolean c, Date d) { //some more params
MyEntity entity = dao.findEntityBy(a, b, c); //might be some more params
//nullcheck
if (!entity.getA().equals(a)) {
entity.setA(a);
}
if (!entity.getB().equals(b)) {
entity.setB(b);
}
//repeat per property... a-n
dao.save(entity);
}
질문 : 내가이 변경된 경우 엔티티의 각 속성을 확인하고 만 세터를 사용해야합니까? 아니면 그냥 검사를 건너 뛰고 엔터티를 재정의해야합니까?
MyEntity entity = dao.findEntityBy(a, b, c);
entity.setA(a);
entity.setB(b);
//...
dao.save(entity);
어떤 방법이 있습니까? 두 솔루션의 장점은 무엇입니까? 모든 "제작 준비"소프트웨어
로 구성 할 수 있습니다? 아니면'@ Transactional'에서 이미 엔터티를 선택했기 때문에 추가 선택을 트리거 할 필요가 없습니까? – membersound
그리고'@ DynamicUpdate'의 이점을 고려해 볼 때, 최대 절전 모드가 모든 SQL 문을 동적으로 재생성해야한다는 사실은 무시 될 수 있습니다. 우리는 string.length가 약 200자인 엔티티 레코드에 대해 말하고 있습니다. 예를 들어 종종 단일 행 번호 만 업데이트 될 수 있습니다 (예 : 재고 보유 가능). – membersound
selectBeforeUpdate = true에 대해서는 사용하지 않아도되지만 실제로 지정하면 어떻게되는지 알 수 있습니다. 동적 업데이트에 대한 열 번호는 열 값이 중요하지 않습니다. –