gpt4 book ai didi

hibernate - Grails:具有多列的数据绑定(bind)自定义 hibernate 类型

转载 作者:行者123 更新时间:2023-12-02 23:10:48 24 4
gpt4 key购买 nike

我正在使用 Grails 的自定义 hibernate 类型 ( http://grails.org/doc/2.3.x/guide/GORM.html#customHibernateTypes ),并将类型映射到多个列。但是,我在弄清楚如何对这些自定义类型进行数据绑定(bind)方面有点困惑。我可以使用 @BindUsing 注释,但是,我只有一个属性和多个列。

例如,这是一个 groovy 类(它将具有使用正确定义的 CustomDataUserType 类创建的自定义类型):

class CustomData
{
String field1
String field2
}

这是一个将此类作为属性的域模型

class DomainModel
{
static mapping = {
customData type: CustomDataUserType, {
column name: "field1"
column name: "field2"
}

@BindUsing { obj, source ->
// The source contains a field/property called customData (otherwise
// this BindUsing closure doesn't get called) however, I need two
// values
}
CustomData customData
}

我的问题是,在 BindUsing 闭包内,源包含一个值,一个名为 customData 的属性。但是,我需要两个值来重新创建自定义对象。这个问题通常是如何解决的?

最佳答案

BindUsing 闭包传递当前对象和一个映射,该映射是代码示例中的 Source。如果您在 map 中传递了 field1 和 field2,您可以轻松地将它们放入您的 CustomData 类型中。

例如,将此 JSON 发布到需要 DomainModel 的 Controller

{
field1: 'test',
field2: '1'
}

DomainModel中使用以下@BindUsing

 @BindUsing { obj, source ->
CustomData customData = new CustomData(field1: source['field1'],field2: source['field2'])
return customData
}
CustomData customData

这应该通过数据绑定(bind)正确创建您的自定义对象。

关于hibernate - Grails:具有多列的数据绑定(bind)自定义 hibernate 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22258991/

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