2011-12-15 3 views
0

Мне интересно, есть ли встроенный/стандартный способ проверки db-откатов в среде Spring (3.1), Hibernate/JPA.Аудит db-rollbacks

Отлично подходит для любых советов.

Благодаря Jonny

+0

Вы работаете в спящем режиме? –

+0

Да, я работаю с Hibernate. – user871611

ответ

1

я, что позволяет "hibernate.show_sql" и с использованием конфигурации протоколирования

log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER 
log4j.additivity.org.hibernate.SQL=false 

поможет вам войти операторы SQL.

0

Если вы хотите отслеживать откаты вы можете каротаж установки для org.hibernate.transaction пакета

13:50:28,597 DEBUG http-8080-1 org.hibernate.transaction.JDBCTransaction - begin 
13:50:28,657 DEBUG http-8080-1 org.hibernate.transaction.JDBCTransaction - current autocommit status: true 
13:50:28,657 DEBUG http-8080-1 org.hibernate.transaction.JDBCTransaction - disabling autocommit 
13:50:28,714 DEBUG http-8080-1 org.hibernate.transaction.JDBCTransaction - commit 
13:50:28,773 DEBUG http-8080-1 org.hibernate.transaction.JDBCTransaction - re-enabling autocommit 
13:50:28,828 DEBUG http-8080-1 org.hibernate.transaction.JDBCTransaction - committed JDBC Connection 

Если вы хотите принять некоторые действия на откат транзакции, вы можете использовать АОП создать аспект и сопоставить его org.hibernate .Transaction.rollback().

@Aspect 
public class TransactionMonitoringAspect { 

@Before("execution(* org.hibernate.Transaction.rollback())") 
public void deviceLoad(String deviceSerial) { 
    //do something here 
} 

} 

вы можете использовать различные аннотации из пакета org.aspectj.lang.annotation для выполнения различных методов вокруг отката методы().