1

出于许多不同的原因,显然最好将事务代码放在 Grails 服务中。但是,域类是否像服务一样具有事务性?

将我的域特定字段的数据绑定放在域类中,甚至使用一些 Groovy 约定来使 Grails 绑定更无缝地工作(例如替换 setSomeField(type A) setSomeField(type B) .. . ). 我也一直在尝试按照 Burt Beckwith 的建议手动处理域模型关系,以提高性能并使代码更加灵活。这需要在 setSomeField(...) 调用上更新和保存其他域类实例。

这就是我正在做的事情的背景,但最初的问题是:Domain classes 是否具有与 Grails 服务相同的事务行为?如果没有,我应该将交易包装在 withTransaction{} 中还是使用 @Transactional 还是仅使用 service ?

4

1 回答 1

3

不,域类的方法默认不是事务性的。您可以应用@Transactional它们或在更高级别的事务上下文中运行它们,例如服务。

于 2014-08-13T12:08:53.147 回答