【发布时间】:2011-10-26 20:18:46
【问题描述】:
我在接缝组件上使用@Transactional 注释,类似于:
@Name( "myComponent" )
@AutoCreate
public class MyComponent
{
public void something() {
...
doWork();
}
...
@Transactional
protected void doWork() {
try {
log.debug( "transaction active: " + Transaction.instance().isActive() );
} catch (Exception ignore) {}
// some more stuff here that doesn't appear to be inside a transaction
}
}
在“更多内容”部分,我正在修改一些 Hibernate 实体,然后遇到了一个引发异常的错误。我注意到异常并没有导致事务回滚(修改后的实体仍在数据库中修改),所以我添加了“事务活动”日志记录。当这段代码执行时,isActive() 返回 false。
我有什么遗漏吗?为什么交易不活跃?
如果重要的话,我会在另一个组件内部使用 Seam 组件,该组件使用 RESTEasy 注释来触发我的方法调用。
【问题讨论】:
标签: java oracle seam transactional