2011-10-04 3 views
0

는 아래최대 절전 모드에서 업데이트 작업은 어떻게 작동합니까? 절전 문서 당으로서

void update(Object object)HibernateException 업데이트 지정된 분리 된 인스턴스 식별자 영구 인스턴스를 발생 갱신 동작의 정의이다. 동일한 식별자를 사용하는 지속성 인스턴스가 있으면 예외가 발생합니다. 이 작업은 연결이 cascade="save-update"으로 매핑되는 경우 연결된 인스턴스로 케스케이드됩니다.

문에 대한 질문이 있습니다. 동일한 식별자를 가진 영구 인스턴스가 있으면 예외가 발생합니다.. 생각할 때 같은 식별자가있는 영구 인스턴스가있는 경우 이는 업데이트 작업을 수행하는 세션에 이미 동일한 식별자가있는 영구 인스턴스가 포함되어 있으면 예외가 발생한다는 것을 의미합니다. 그러나 두 번째 레벨 캐시에 동일한 식별자가있는 영구 인스턴스가 포함되어 있으면 업데이트 작업에서 객체를 업데이트합니다. 예외가 발생하지 않습니다. 맞습니까?

답변

0

아니요.이 문장은 두 번째 수준 캐시가 아니라 세션에 대해 알려줍니다. 2 차 레벨 캐시는 세션 팩토리 레벨에서 작동하며 세션 팩토리가 살아있는 한 존재합니다. 그리고 동일한 식별자가 붙은 객체가 세션 (두 번째 레벨 캐시가 아님)에 첨부되면 예외 만 발생합니다. 그렇지 않은 경우 데이터베이스의 객체와 두 번째 레벨 캐시를 업데이트합니다.

0

동의. 동일한 식별자를 가진 인스턴스가 두 번째 레벨 캐시에 있으면 업데이트가 예외를 throw해서는 안됩니다.

당신이 강조한 문장은 명확하지 않지만 당신의 가정에 맞다고 생각합니다. 아마도 http://jboss.org 포럼에 댓글을 달고 문구를 분명히 할 수 있는지, 어쩌면 개선 할지를 알아볼 수 있습니다.

관련 문제