2012-11-06 4 views
0

이전 db strukture에는 데이터를 변경할 때 업데이트되는 두 개의 필드가 한 테이블에 있습니다.낙관적 인 잠금 : 업데이트해야하는 두 개의 필드

create table dbo.example(
    name varchar(50), 
    ..., 
    changed smalldatetime, -- here we save the last update date 
    version int    -- and here we increase the number 
) 

질문하지 마십시오. 마치 다음과 같습니다 :-)

이제 Eclipselink 및 Glassfish v3와 함께 낙관적 잠금을 구현합니다.

@Version 주석을 사용하여 버전을 높일 수있었습니다. 그러나 이름 필드가 실제로 변경된 경우에만 어떻게 변경된 필드를 업데이트 할 수 있습니까? 변경된 필드를 매번 설정하면 매번 JPA 업데이트가 수행됩니다. 이름 입력란에 실제 변경 사항이없는 경우에도 마찬가지입니다. 이름 필드가 실제로 "손"으로 변경되었는지 확인하고 싶지 않습니다.

@Version 주석을 두 번째 필드에도 설정할 수 있습니까?

답변

0

나는 그것을 발견 : EntityManager의 업데이트를 수행하기로 결정 때 그것은 단지라고

@PreUpdate 
private void update() { 
    changed = new Date(); 
} 

.

관련 문제