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

时间:2019-01-14 15:21:15

标签: mysql grails groovy gorm

我正在编程一种基于用户输入显示从MySQL数据库获得的产品的方法。我的产品具有一个属性(大小),该属性可以由字符串表示,可以由大小类型的对象(另一个具有三个浮点值的域类)表示,或者一起丢失。 目前,我的产品类对每个表示形式都有一个属性,这两个属性都可以为空。我认为应该在一个特定的位置显示此属性。 现在我的问题是,我应该在哪里处理确定特定对象具有哪种表示形式的问题?

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

对于这个非常笼统的问题,我感到抱歉,一旦知道确切的位置,我绝对可以改变。非常感谢!

1 个答案:

答案 0 :(得分:1)

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

vector<meth> ma;
...
int i0 = addfunc([](int a) { });
int i1 = addfunc([](int a,int b) { });
int i2 = addfunc([](int a,int b,int b) { });
int i3 = addfunc([](int a,int b,int c,int c) { });
...
ma[i0](stack);
ma[i1](stack);
ma[i2](stack);
ma[i3](stack);