圣杯 1.3.7
我们有一个合并 2 个用户的服务方法。由于数据量很大,因此有很多部分,因此需要进行大量读取,更新和写入。我们在服务中有 transactional=true。我知道 Grails 的默认 FlushMode 是 AUTO。而且我了解该错误消息的含义。
但是,它不会在本地发生,也不会在我们的暂存环境中发生。所有这些都以相同的权限运行相同版本的 MySQL(密码除外)。
我知道我可以更改默认的 FlushMode 行为,但我很犹豫,因为我无法在生产环境之外的任何环境中复制该行为。现在我只是想知道是否有任何可能导致这种情况实际上与 FlushMode 无关的东西?
逐字错误消息是:
org.springframework.dao.InvalidDataAccessApiUsageException:只读模式下不允许写入操作(FlushMode.MANUAL):将您的 Session 转换为 FlushMode.COMMIT/AUTO 或从事务定义中删除“readOnly”标记。