gpt4 book ai didi

grails - 从Grails Controller 保存对象失败

转载 作者:行者123 更新时间:2023-12-02 14:12:46 25 4
gpt4 key购买 nike

有一个 Controller 只是在更新对象:

def obj = Table.find(...)
obj.state = "END"
if(!obj.save(flush:true)) ...
// Session flushing does not help too.
// I am able to fetch that object again here but it is never persisted to DB

当部署到Debian上的 上时,该对象实际上并没有持久化,尽管没有报告任何错误(也没有通过手动检查或通过 failOnError)。但是,如果将其部署到我的本地Windows计算机上,则该对象将正确保留。这两台机器都连接到同一个DB。

解决方法是将 save移入服务或覆盖 withTransaction。是的,我知道服务是处理DB的更好场所。相反,我很有趣地找出导致这种不一致和有问题的行为的原因(以及如何在单个位置修复它)。还是设计禁止在 Controller 中执行此类操作?

Grails 2.1.1,Tomcat
DataSource.groovy的摘录:
dataSource {
driverClassName = "oracle.jdbc.driver.OracleDriver"
dialect = org.hibernate.dialect.Oracle10gDialect
pooled = true
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}

最佳答案

请检查是否没有验证错误。

obj.validate()
obj.errors.each {

if(obj.hasErrors)
println it
}

关于grails - 从Grails Controller 保存对象失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13993436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com