在从 Grails 3 升级到 Grails 6 的过程中,我在 bootRun 和 war 部署中遇到了不同的行为。
conf/application.groovy 中的此设置被设置为禁用版本(乐观锁定功能):
grails.gorm.default.mapping = { version false autoTimestamp false autowire true }
它可以在本地查找
./gradlew bootRun
,但如果从 WAR 文件运行,则会由于缺少版本列而引发异常。
我尝试在 application.yml 中进行设置,并将 application.groovy 从 conf 重新定位到 src/main/resources,但问题仍然存在。我发现的唯一解决方法是在每个域类映射闭包中设置它,但这不是理想的解决方案,因为我们有数百个域对象。
真诚感谢帮助。预先感谢。
我正在使用 Grails 4,因为我还没有达到 6,但 bootRun 默认情况下使用“开发”Grails 环境。 war 文件将使用“生产”Grails 环境。
我会检查您的数据源定义以确保它们配置正确。