gpt4 book ai didi

grails - 如何使用其他域对象启动 Grails 域类

转载 作者:行者123 更新时间:2023-12-02 14:48:20 25 4
gpt4 key购买 nike

我有两个域名

class Book {

String name
Long id
}

class BookRef {

String name
Long id
String refId
}

Book表,我存储了 id=1 之类的数据, name='Java' .
现在我可以发起 BookRef通过获取 Book像下面这样
def book = Book.get(1)

def bookref = new BookRef()
bookref.id = book.id
bookref.name = book.name
bookref.refId = '1'
bookref.save()

但我想发起 bookref对象使用 bookparams 这样的对象绑定(bind)不是通过绑定(bind)每个单独的属性。

目前,我已经使用属性来初始化属性,但是在具有各种属性的域中,这很耗时。

我怎样才能做到这一点?

最佳答案

干得好:

Book book = Book.get(1)

// Option 1
BookRef bookref = new BookRef(book.properties)
bookref.refId = '1'
bookref.save()

// Option 2
BookRef bookref = new BookRef()
bookref.properties = book.properties
bookref.refId = '1'
bookref.save()


基本上,在 Grails 中,任何 domainInstance.properties为您提供所有域字段的 map 。

请注意 , 这种方法适用于像 String 这样的原始类型, boolean , int , Long等等,但是当域具有集合、一对多或具有多关系字段时,Grails 可能会抛出异常。

关于grails - 如何使用其他域对象启动 Grails 域类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57388610/

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