我正在尝试将属性的Maps保留为单个JSON编码的列
我遇到的问题是,显然 无法在默认地图构造函数中设置瞬时属性 。给定任何瞬态场:
class Test {
//...
String foo
static transients = ['foo']
}
似乎地图构造函数(Grails以各种方式覆盖)只是丢弃了瞬态字段:
groovy:000> t = new Test(foo:'bar')
===> Test : (unsaved)
groovy:000> t.foo
===> null
虽然直接分配(通过setter方法)可以按预期工作:
groovy:000> c.foo = 'bar'
===> bar
groovy:000> c.foo
===> bar
有没有办法让地图构造函数接受瞬态字段?
或者更确切地说:有没有Map
比链接的问题中显示的方法更好的方法来将a保留为单个JSON编码的DB字段?
这是完整的示例:
import grails.converters.JSON
class JsonMap {
Map data
String dataAsJSON
static transients = ['data']
def afterLoad() { data = JSON.parse(dataAsJSON) }
def beforeValidate() { dataAsJSON = data as JSON }
}
我可以data
使用setter进行设置(然后将其转换为dataAsJSON
),但不能使用map构造函数。
GORM中的地图构造函数使用数据绑定机制,并且默认情况下,瞬态属性不可进行数据绑定。但是您可以使用可绑定约束来覆盖它
class Test {
//...
String foo
static transients = ['foo']
static constraints = {
foo bindable:true
}
}
我的应用程序获取资源字符串占位符令牌列表,它应该使用给定值更改令牌。 这种资源的一个例子是:“ 。 所以我切换到的其他方法: 这产生了以下功能: 所以现在我能做的是: 但是现在我需要在内部函数中分解 ,以便模板文字知道值 顺便说一句——我已经试过了——没有成功: 问题 如何在内部函数中展平以便将具有已知的本地值? 注意,我不喜欢使用正则表达式解决方案,因为在模板文本中有换行符。此外,这些资源有意采
问题内容: 在React组件中,最好是在Constructor()或componentWillMount()中设置初始状态? 要么 问题答案: 使用ES6类时,最好在构造函数中使用,但不要使用API,而是这样做: 另外,如果您有可用的类属性(Bab期1),则可以执行以下操作:
问题内容: 到目前为止,我已经看到了两种在Java中设置变量值的方法。有时使用带有参数的构造函数,而其他setter方法则用于设置每个变量的值。 我知道,一旦使用“新”关键字实例化了一个类,构造函数就会在类内部初始化一个实例变量。 但是,什么时候使用构造函数,何时使用setter? 问题答案: 当您要创建对象的新实例时,应使用构造函数方法,该实例的值已填充(准备使用的对象中已填充值)。这样,您无需
我正在构建一个API并使用swagger测试endpoint。我有一个产品: 在这个DTO中,我想使用在我的代码中使用的Price类。价格类如下所示: 但是由于私有设置器在类中使用,我无法使用swagger设置这些值(它在这些上具有属性)。我真的很喜欢这种拥有私有设置器并使用构造函数设置值的方法,顺便说一句,这是公共的。有没有办法我可以使用swagger为类设置值,并且仍然在属性上使用私有设置器?
我们正在构建一个与远程API通信的webapp。我想这样设计这个远程API的客户端: 关键是,我想在构建期间将凭据传递给这个客户端,并让所有其他方法使用这些凭据。我的第二个要求是我希望这个实例在会话中。 我在这里发现了如何传递动态构造函数参数。 我在这里发现了如何创建会话属性。 但我想不出一种方法来结合这两种技术。据我所知,您必须在自己的类getter方法中实例化会话属性。这种类似getter的方
我想让我的子组件有一个ref,但是我不希望用户在创建组件时必须指定ref。所以说我有这样的东西: 我希望父组件能够访问子组件的状态。最简单的方法是为每个组件添加一个ref,但我希望这是在函数中完成的,以便从最终用户那里抽象出它,因为我希望这些组件被通用化。 有没有一种干净的方法可以让父组件访问子组件的状态,例如当创建子组件时,您有以下内容: 因此,在父类内部,我可以执行以下操作: 因此,我希望能够