gpt4 book ai didi

select - 合并后DomainClass.getAll()无法正常工作

转载 作者:行者123 更新时间:2023-12-02 15:41:31 27 4
gpt4 key购买 nike

我试图更新数据库上的一行,并注意到一旦更新了该行,getAll就会停止正常工作。所有已更新的记录开始从getAll的结果中丢失。

例如,假设您有一个产品列表[product1,product2,product3]。如果我做类似product2.someProperty = 2的操作,然后再执行product2.merge(),则列表中将缺少第二个产品。因此,Products.getAll()的结果将为[product1,product3]。

(很抱歉,如果这是一个菜鸟问题)

如果我执行Product.get(idOfUpdatedProduct),它将正常工作。
我已经检查了数据库,并且合并正确地更新了数据。
问题似乎出在GetAll()方法上。
findAll()呈现相同的行为。

我的代码:

---action
def update() {
Product product = productService.detail(params.id?.toLong())
bindData(product, params)
productService.updateProduct(product)
redirect action: "show", params: [id: params.id]
}

---service
void updateProduct(product) {

product.validate()
StringBuilder str = new StringBuilder()
product.errors.allErrors.each { str << "${it}" }

if (!str.toString().isEmpty()) throw new Exception("Error: ${str.toString()}")

product.merge(flush: true, failOnError: true)

}

最佳答案

我发现了问题。

结果实际上是被返回的,但是由于某种原因,它被放置在列表的中间。

我通过对列表进行排序解决了。

关于select - 合并后DomainClass.getAll()无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57208900/

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