grails之在 Grails 中,我如何判断一个对象是否是 transient 的

芝麻糊 阅读:43 2024-11-01 17:39:52 评论:0

我在 Grails 中有一段代码:

def product = Product.get(5) ?: new Product() 
product.isDiscounted = product.isDiscounted ?: true 

问题是,如果已经为现有产品设置了 isDiscounted 属性并且它是 false,我最终会将其更改为 true。是否可以检查一个对象是否是 transient 的?

请您参考如下方法:

在这种情况下,将属性设为 Boolean 而不是 boolean,那么初始值将为 null 而不是默认为 false 。这也将有助于验证,因为您可以验证 false 的选择是有意的,而不仅仅是允许默认值。

一般来说,尽管您可以使用isAttached() 方法(或属性样式变体attached),例如

def product = Product.get(5) ?: new Product() 
product.isDiscounted = product.attached ? product.isDiscounted ? true 

这种情况实际上可以用构造函数中的默认值来更紧凑地完成:

def product = Product.get(5) ?: new Product(discounted: true) 


标签:程序员
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号