繁体   English   中英

Grails:我在哪里处理可以有两种不同表示的域类属性?

[英]Grails: Where do I handle a domain class property that can have two different representations?

我正在编写一种根据用户输入显示从 MySQL 数据库中获取的产品的方法。 我的产品有一个属性(大小),它可以由字符串、大小类型的对象(另一个包含三个浮点值的域类)表示,也可以完全丢失。 目前,我的 Product-Class 为每个表示都有一个属性,这两个属性都可以为空。 在我看来,我有一个特定的地方应该显示这个属性。 现在我的问题是,我在哪里处理确定我对特定对象具有哪种表示的问题?

我可以在我的 gsp 模板中包含一个 if 条件,但这似乎是不好的做法。 我将能够让执行查询的服务处理结果并构建单个大小属性以传递给模板,但这似乎也不正确。 我的数据库设计有问题吗? 我是否必须更改我的域模型?

对于这个非常笼统的问题,我很抱歉,一旦我知道我到底需要在哪里更改某些内容,我绝对可以更改它。 已经非常感谢了!

解决您的问题的一种方法是使用额外的瞬态字段,该字段将在您的视图中使用,但不会保留在您的数据库中。

class Product {
    String sizeString
    Size sizeSize

    getSize() { sizeString ?: sizeSize.toString() }

    static transients = ['size']
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM