gpt4 book ai didi

grails - grails-如何在数据库中保存ArrayList

转载 作者:行者123 更新时间:2023-12-02 15:38:17 26 4
gpt4 key购买 nike

我使用grails-1.3.2和hbase插件。
我在与建立一对多关联时遇到一些困难
HBase的(我可以使用休眠),所以
我决定尝试使用ArrayList创建一对多关联。

这是我的域类和 Controller :

class Contacts {

String con

static constraints = {}
}

class ContactsController {

def create = {
def contact = new Contacts()
contact.con = params.con
contact.save(flush:true)
}
}

class User {

String firstname
String lastname

// static hasMany = [contact: Contacts]

static ArrayList<Contacts> contact

static constraints = {}
}

class UserController{

def create = {
def user = new User()

user.properties = params
user.save(flush: true)
}

def addContact = {
def user = User.get(params.userID)
def contact = Contacts.get(params.contactID)

user.contact.add(contact)
user.save(flush:true)
}
}

addContact中操作 user.contact = null,所以它不能工作。
在用户中也不会出现 contact字段。

有人可以帮助我了解将 ArrayList保存为 db时需要做什么吗?

最佳答案

我对hbase一无所知,但是contact类的静态User属性看起来非常可疑。此属性是静态的事实意味着每个用户都有相同的联系人列表,这似乎不太可能是所需的行为。

在标准的GORM域模型中-假设您希望每个User具有自己的联系人列表-则将定义

class User {    
String firstname
String lastname

static hasMany = [contact: Contacts]
}

尽管看起来我们也在这里定义了静态属性,但实际上只是静态的 ContactUser类如何关联(AKA映射)的定义。动态添加到 contact类的 User属性是非静态的。

在旁边

我建议将 Contacts类重命名为 Contact,并将 contact属性重命名为 contacts。然后,GORM映射将如下所示:
class User {    
String firstname
String lastname

static hasMany = [contacts: Contact]
}

关于grails - grails-如何在数据库中保存ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6370754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com