出于许多不同的原因,显然最好将事务代码放在 Grails 服务中。但是,域类是否像服务一样具有事务性?
将我的域特定字段的数据绑定放在域类中,甚至使用一些 Groovy 约定来使 Grails 绑定更无缝地工作(例如替换 setSomeField(type A) setSomeField(type B) .. . ). 我也一直在尝试按照 Burt Beckwith 的建议手动处理域模型关系,以提高性能并使代码更加灵活。这需要在 setSomeField(...) 调用上更新和保存其他域类实例。
这就是我正在做的事情的背景,但最初的问题是:Domain classes 是否具有与 Grails 服务相同的事务行为?如果没有,我应该将交易包装在 withTransaction{} 中还是使用 @Transactional 还是仅使用 service ?