grails 设置一对多(hasMany belongsTo)级联关系

来源:互联网 发布:科多大数据上海 编辑:程序博客网 时间:2024/05/19 17:57

Grails 是内嵌 Hibernate 来进行数据库交互的,级联关系也和 Hibernate 设置一致。常见情形在官方文档里已做了详细介绍,这里讨论的是一对多,而且 “一” 这一方的主键需要指定特定 column 的情形。一对一和 多对多 可以以此类推。有两个表

officer:用户表(由于历史等特殊原因命名此表),主键 user_id

group_user:用户和用户组关系表,主键 group_id + user_id

domain class 如下所示:

class Officer {String userIdstatic mapping = {id name: "userId", generator: "assigned"version false}}class GroupUser {String groupIdString userIdstatic mapping = {id composite: ["groupId", "userId"]version false}}


添加 级联关系后如下所示:


class Officer {String userIdstatic hasMany = [GroupUsers: GroupUser]static mapping = {id name: "userId", generator: "assigned"version falseGroupUsers lazy: false}}class GroupUser {String groupIdString userIdOfficer officerstatic belongsTo = [officer: Officer]static mapping = {id composite: ["groupId", "userId"]version falseofficer column: "user_id" // 指定主键列}}



0 0
原创粉丝点击