反正有没有在Grails中进行"深度保存"?

ubi*_*con 4 grails grails-orm

在我的服务中,我创建了一个"根"对象,它与许多对象有关联,而这些对象又与更多对象有关联,依此类推.一旦根对象完全构建并准备好保存,我想调用save根对象并将所有关联的对象一直保存下来.现在我有一个称为递归的方法deepSave.有没有更好的办法?

mic*_*cha 6

如果您使用belongsToGORM自动为您定义级联.这意味着:如果belongsTo在保存B时保存A B,则保存A. 但是,可以在不使用的情况下定义级联belongsTo(如果这不适合您的域模型):

class Author {    
  static hasMany = [books: Book]
  static mapping = { books cascade: 'all-delete-orphan' } 
}
Run Code Online (Sandbox Code Playgroud)

您应该看一下GORM提供的级联属性.另外,hibernate文档提供了更详细的信息.

  • 啊,这就是我所缺少的.[了解级联更新和删除]的摘录(http://grails.org/doc/latest/guide/single.html#cascades):***如果您没有定义belongsTo,那么将不会发生级联,您将拥有手动保存每个对象(除了在一对多的情况下,在这种情况下,如果新实例在hasMany集合中,保存将自动级联).***我的一些对象不属于`hasMany `集合. (2认同)