grails - 用于保存的 Grails GORM 域类关系
问题描述
下面是结构化的域类
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 中引用 Membership 的“memberPlanId”。我如何从那里设置,它应该在 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 的记录
希望有帮助
推荐阅读
- sql - 一个与自身没有直接连接的连接的查询
- import - 尝试以正确的格式将文本文件加载到 Octave GUI
- html - 如何在 HTML 下拉选项中进行相等的填充
- kubernetes-helm - 无法在 AKS 上部署 Apache Pulsar。'selectedNode 注释值“”未设置'
- mysql - 如何选择每种类型中的最大行
- javascript - li 标签未使用 javascript 使用 socketio 生成值
- r - 多列过滤器基数
- php - 自定义用户自定义帖子类型 Wordpress
- python - 如何比较python中具有不同键的两个字典的值
- python - 不要在路由器上使用 load_merge_candidate (napalm)