2011-04-28 8 views
2

나는 이상한 문제에 직면하고 있습니다. 어떤 변경없이, 특정 엔티티 타입에 대해 update를 호출하면 hibernate는 아무 것도하지 않는다. 오류/디버그 메시지가 없습니다. 구성에서 hibernate.show_sql을 활성화하고 업데이트 쿼리를 볼 수 없으며 select 및 insert에 대한 쿼리 만 표시됩니다.최대 절전 모드 업데이트가 갑자기 작동하지 않습니다.

실마리를 풀거나 적어도 문제를 디버그하는 방법에 대한 단서가 있습니까?

+3

코드 및 구성을 보여줍니다. –

답변

4

업데이트가 트랜잭션 내에서 실행되는지 확인하십시오. 내 추측은 그렇지 않다.

거래
거래는 그룹 데이터 액세스 작업은, 사실, 모든 SQL 문, 는 데이터베이스 트랜잭션 내에서 실행하는, 그것은 쿼리 또는 DML합니다. 데이터베이스 트랜잭션 외부에 외부의 데이터베이스와 통신 할 수 없습니다. ( 가 충분히 가 자신의 작업을 최적화하는 스마트하지 않은 경우 데이터베이스 엔진에 정리 시간을 향상 하는 데 사용할 수있는 읽기 전용 거래와 같은 일이 있다는 것을 유의하십시오.)

에게 권리를 접근 방식은 프로그램 시작과 투입 거래 중 하여 응용 프로그램에서 명확한 트랜잭션 경계를 정의하는 것입니다, 또는 당신이 선언적 을이 작업을 수행 할 수있는 기계가있는 경우 (예 : 서비스/명령 방법에 대한). 예외가 발생하면 트랜잭션을 롤백하거나 선언적으로 롤백해야합니다. 당신이 spring를 사용하는 경우 트랜잭션 작업

Read more

가 쉽습니다.

+0

이것이 필요합니까? – Erik

+0

내 대답을 –

+1

+1 업데이트했습니다. 트랜잭션 (최소한 Spring과 함께)에서 응용 프로그램을 디버그하여 스택을 확인하는 것이 가장 쉬운 방법을 찾았습니다. 트랜잭션 프록시가 없으면 특정 시점에 주석을 추가하는 것을 잊었습니다. – Augusto