gpt4 book ai didi

如果在添加关系后调用 Grails save() 不会保存

转载 作者:行者123 更新时间:2023-12-04 21:27:08 25 4
gpt4 key购买 nike

我有两个域类 - 人有很多书。如果我创建一个
Person,调用 save(),然后创建 + 添加 Books 到 Person,一切
被持久化到数据库中。如果我创建一个人,然后创建+添加
书籍,然后是 save(),没有任何东西被持久化。

示例代码:

class Person {
...
static hasMany = [books: Book]
}

class Book {
...
static belongsTo = [person: Person]
}

工作,保存到数据库:
def person = new Person(...).save()
def book = new Book(...)
person.addToBooks(book)

不起作用,不保存到数据库:
def person = new Person(...)
def book = new Book(...)
person.addToBooks(book)
person.save()

为什么是这样?

我从 Groovy 控制台运行它。我试过调用 ctx.sessionFactory.currentSession.clear()这没有帮助。

已解决:我附在那个人身上的那本书有错误。调用 person.hasErrors()getErrors()我能够看到我的书未能通过验证。这是从 Grails 控制台运行的,因此没有任何验证错误消息。

最佳答案

您需要像这样手动刷新休眠 session :

person.save(flush:true)

关于如果在添加关系后调用 Grails save() 不会保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1496806/

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