从grails 2.3.11升级到3.2.9版后,我遇到了问题。 我们改变了所需要的东西,几乎一切都很好。但我们仍然只有一个问题。
应用中的某些操作具有以下模式:
点击UI后,会有一个ajax请求,用于将数据更新/插入数据库。
成功后,回调另一个ajax,检索更新/新数据。
有时(很少),第二个ajax获取旧数据(当然在另一个请求之后,数据被更新)。数据库没有足够的时间来保存数据? ;)
在Grails 2中,这种情况从未发生过。 我们使用postgres 8.4,但在更新到9.6之后,仍然会出现问题。更改jdbc驱动程序也没有帮助。
为了重现这一点,我创建了一个简单的应用程序。我向DB添加了一些记录并创建了2个动作。一个动作添加一个域并返回一个新的id,第二个动作在插入后获取数据(只有一个断言检查是否在DB中创建了具有正确id的域)。 当我在本地快速计算机上安装postgres数据库时,问题很少发生,但在本地网络上,慢速计算机会导致问题更频繁地出现。 默认H2数据库没有出现此问题。
https://github.com/kuchar90/grails3.2Test
这是正常行为吗?你知道在哪里寻找这个问题的原因吗?