我正在尝试使用以下gorm插件实现mongodb的多租户:
'org.grails.plugins:mongodb:6.0.4'
implements MongoEntity<Book>, MultiTenant<Book>
正确保存到相应数据库的域类。但是,在这些域类中,永远不会保存版本列。这意味着当我检索同一个对象并尝试更新某些值时,我会得到乐观的锁定异常。由于版本列为空,因此比较失败。
这是我保存对象的方式:
Tenants.withCurrent {
book.save(flush: true)
}
我已经推送了重现相同场景的示例代码。我很欣赏任何正确方向的帮助或指针。
答案 0 :(得分:0)
我注意到您的服务是使用@Transactional注释的。
此问题并未提及与您相同的错误,但似乎表明多租户和@Transactional可能无法很好地协同工作https://github.com/grails/grails-data-mapping/issues/767