我有业务需求,我需要根据预定义的规则集映射多对表。这些表包含相同的数据,但具有不同的模式。例如:表name
中的字段abc
与表fullname
中的字段def
相同。我的业务需求需要我映射这样的几个表。我想过使用grails'DRY'原则。
为了尝试一个示例,我在Grails中创建了两个域类Abc
和Def
,并在第三个类中创建了AbcDefMapping
。然后在Controller模板中,我创建了一个名为convert
的方法,我将AbcDefMapping
字符串拆分为Abc
,Def
和Mapping
字符串。现在我想在生成的控制器中调用方法Abc.list()
。我怎么做? (编辑:我解决了这个,请看看我的另一个问题,即是否有更好的方法来做到这一点)
这是我的代码:
def convert(){
def cn = "${className}"
def lis = []
def str = ""
for (i in cn){
if (i == i.toUpperCase() && str!=""){
lis.add(str)
str = i
}
else{
str = str +i
}
}
lis.add(str)
def inputs = \${lis[0]}.list() // lis[0] = "Abc"
}
我希望输入在生成的代码中显示为Abc.list()
。
否则,你能否告诉我一个更好的方法来实现我想在这里做的事情?