用于保存的 Grails GORM 域 class 关系

Grails GORM domain class relation for saving

以下是域 class 结构化

class User {
   String username
   String password
   String emailAddress
   static hasMany = [memberships: Membership]
}

class Membership {
   String name
   Integer memberPlanId
   static belongsTo = [user: User]
}

//MemberPlan data have 2 types of plan existed in DB
class MemberPlan {
   String type
   Float amount
}

我想从 MemberPlan 中引用 'memberPlanId' 的 Membership。我如何从那里设置,它应该在 belongsTo 下? 'memberPlanId' 属性 的保存查询如何进行?

new User(username: 'input_username', password: 'input_password', emailAddress: 'input_emailAddress')
  .addToMemberShips(new Membership(name: 'input_name', memberPlanId: ?))
  .save()

您可能希望按如下方式编辑会员域

class Membership {
   String name
   MemberPLan memberPlan                 // this is basically a belongsTo relation
   static belongsTo = [user: User]
}

要保存新用户,您可以使用

new User(username: 'input_username', password: 'input_password', emailAddress: 'input_emailAddress')
  .addToMemberShips(new Membership(name: 'input_name', memberPlan: MemberPlan.get(1)))
  .save()

MemberPlan.get(1) 将从数据库中获取 id = 1

的记录

希望对您有所帮助