我有以下内容:
GroupMember.groovy
public class GroupMember{
String userName
String role
}
GroupProfile.groovy
public class GroupProfile{
List<GroupMember> groupMembers = new ArrayList<GroupMember>()
}
GroupProfileController.groovy
public class GroupProfileController{
def createProfile{
GroupMember groupOwner = new GroupMember()
groupOwner.userName = "testUser"
groupOwner.role = "OWNER"
groupOwner.save()
GroupProfile groupProfile = new GroupProfile()
def members = grouProfile.groupMembers
members.add(groupOwner)
groupProfile.save()
GroupProfile.list() //This list contains my GroupMember instance with the correct info
redirecT(action: myProfiles)
}
def myProfiles={
GroupProfile.list() //This list contains my groupProfile that I made but no GroupMember info
}
}
我的
GroupProfile
不会保存我的GroupMember
信息。如何获取我的GroupProfile
以保存GroupMember
信息?
最佳答案
表示这种关系的正常方式是:
public class GroupProfile {
static hasMany = [groupMembers: GroupMember]
}
这将自动在
GroupProfile
上生成一个称为addToGroupMembers
的方法,该方法将创建关联。保存GroupProfile
也将级联到组成员,因此添加成员后只需要调用一次save。请注意,
groupMembers
集合实际上是Set
的实例,不一定保留顺序。您可以将集合明确声明为List
来保留顺序,但是它需要额外的开销,包括额外的数据库列,因此请确保这确实是您想要的。查阅有关GORM的部分中的grails手册:http://grails.org/doc/latest/guide/GORM.html
关于grails - 如何获得持久化类中的对象列表的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23392220/