2011-12-15 101 views
0

我想知道在Spring(3.1),Hibernate/JPA環境中是否有內置/標準方式來審計數據庫回滾。審計數據庫回滾

偉大的任何提示。

感謝 強尼

+0

你在用hibernate嗎? – 2011-12-15 12:14:15

回答

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 

如果你想利用在事務回滾一些操作,您可以使用AOP來創建一個方面並映射它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包來執行回滾周圍各種方法()方法。