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

时间:2013-10-23 22:24:18

标签: grails gorm

在我的服务中,我创建了一个“根”对象,该对象与许多对象有关联,而这些对象又与更多对象相关联,依此类推。一旦根对象完全构建并准备好保存,我想在根对象上调用save并同时保存所有关联的对象。现在我有一个名为deepSave的递归方法,它可以做到这一点。还有更好的方法吗?

1 个答案:

答案 0 :(得分:6)

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

class Author {    
  static hasMany = [books: Book]
  static mapping = { books cascade: 'all-delete-orphan' } 
}

您应该查看GORM提供的cascade属性。另外,hibernate documentation提供了更详细的信息。