执行一行代码和另一行,我怎么知道它们是在同一个休眠事务中执行还是在不同事务中执行?在调查硬错误时,拥有当前事务的唯一 ID 将是一个有用的功能。
我尝试转换为具有方法TransactionStatus
的实现,但这导致三个 HibernateTransactionObject 具有不同的 hashCode... 没有帮助。DefaultTransactionStatus
getTransaction()
在下面的示例中,我想要使用 and 之类的status1 ne status2
表达式status2 eq status3
。但equals()
总是false
返回TransactionStatus
和HibernateTransactionObject
:
Dog.withTransaction { TransactionStatus status1 ->
Dog.withNewTransaction { TransactionStatus status2 ->
Dog.withTransaction { TransactionStatus status3 ->
print(status1)
print(status2)
print(status3)
}
}
}
输出:
org.springframework.transaction.support.DefaultTransactionStatus@d42932c / org.springframework.orm.hibernate3.HibernateTransactionManager$HibernateTransactionObject@3f02d1d0
org.springframework.transaction.support.DefaultTransactionStatus@598b083a / org.springframework.orm.hibernate3.HibernateTransactionManager$HibernateTransactionObject@dcc3481
org.springframework.transaction.support.DefaultTransactionStatus@5803214e / org.springframework.orm.hibernate3.HibernateTransactionManager$HibernateTransactionObject@36c945c3
Grails 2.2.0,休眠 3.6