많은 데이터를 처리하는 Grails 서비스로 작성된 메소드가 있습니다.
가끔씩 메서드가 성공을 리턴하지만 데이터가 데이터베이스에 저장되지 않는 것으로 나타났습니다.메서드가 반환 된 후 데이터베이스 트랜잭션 중에 데이터가 보존되었는지 어떻게 알 수 있습니까?
나는 방법의 끝날 때까지 모든 데이터를 따라 디버깅했지만 모든 것이 정상이지만 데이터는 지속되지 않습니다.
다음 이미지는 방금 설명한 내용을 보여줍니다. Map 객체가 영구 객체 메타 데이터로 채워지는 메소드의 끝을 볼 수 있습니다. 비록 당신이 printend이 들어있는 콘솔을 볼 수 있습니다 Hibertate SQL
롤백 메커니즘이 성공적인 방법은 복귀 후 발생 여부를 내가 감지 할 수있는 방법?
이것은 Oracle 12c 데이터베이스의 연결 속성입니다. 기타 구성이 서비스는 @Transactional
@Transactional
class SincronizacionService {
}
어떤 생각으로 anotated됩니다
dataSource.pooled=true
hibernate.jdbc.use_get_generated_keys=true
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=false
hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
dataSource.driverClassName=oracle.jdbc.driver.OracleDriver
dataSource.dialect=org.hibernate.dialect.OracleDialect
dataSource.url=jdbc:oracle:thin:@172.16.1.20:1521:db
dataSource.username=<USER>
dataSource.password=<PASS>
hibernate.default_schema=<SCHEMA>
Grails의 기본값입니까?
방금 질문 제목을 편집 했으므로 더 잘 이해할 수 있습니다. – lealceldeiro
아마도 _setup_을 사용하여 트랜잭션에서 커밋을 수동으로 호출해야합니다. 최대 절전 모드 구성을 공유 할 수 있습니까? 어떤 트랜잭션 관리자를 사용하고 있습니까? 너는 어느 환경에서? – gtosto
코드는 Grails 애플리케이션에 속합니다. 내 사용자 지정 구성으로 질문을 편집했습니다. 이것은 모든 환경에서 발생합니다 [개발 | 테스트 | 생산]. 서비스에 @Transactional도 덧붙여졌습니다 –