我正在阅读Grails的入门书籍,很好奇它的工作原理。
我能理解级联删除,使用的示例是属于专辑的歌曲列表,因此,如果删除专辑,则歌曲也会被删除。但是,它随后提到级联保存和编辑,因此,如果对相册的保存操作也级联。
这具体是什么意思?如果我更改了album.title并保存了它,这里的“级联保存”会产生什么样的效果?我看不到任何有影响的东西。这仅表示更新了所有这些歌曲的拥有专辑的名称吗?如果是这样,那实际上是应该如何工作的?我认为专辑和拥有的Song对象之间只会存在某种形式的链接或引用,而不是“歌曲”对象实际上通过它自己的数据来跟踪其拥有专辑的名称。
最佳答案
Grails中的级联保存通常适用于父/子关系。例如,给定以下域:
class User {
static hasMany = [addresses: Address]
}
class Address {
static belongsTo = [user: User]
}
然后是以下代码:
def user = new User()
def address = new Address()
user.addToAddresses(address)
user.save()
保存用户后,级联还将保存地址。以下内容也会级联:
def user = User.get(1)
user.address.street = "123 st"
user.save()
级联会将更新保存到该地址。在这两种情况下,任何错误都将在用户域中收集。因此,如果对Address.street的更新失败,您将在
user.errors
中看到它们。
关于grails - 'cascading saves and edits'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21023285/