用grails映射表字段

用grails映射表字段,grails,groovy,Grails,Groovy,我有一个业务需求,需要根据预定义的规则集映射几对表。这些表包含相同的数据,但具有不同的模式。例如:表abc中的字段name与表def中的字段fullname相同。我的业务需求需要我映射几个这样的表。我想到了使用grails的“干燥”原理 为了通过一个示例进行尝试,我在Grails中创建了两个域类Abc和Def,以及第三个类AbcDefMapping。然后在控制器模板中,我创建了一个名为convert的方法,其中我将AbcDefMapping字符串拆分为Abc、Def和Mapping字符串。现在我

我有一个业务需求,需要根据预定义的规则集映射几对表。这些表包含相同的数据,但具有不同的模式。例如:表
abc
中的字段
name
与表
def
中的字段
fullname
相同。我的业务需求需要我映射几个这样的表。我想到了使用grails的“干燥”原理

为了通过一个示例进行尝试,我在Grails中创建了两个域类
Abc
Def
,以及第三个类
AbcDefMapping
。然后在控制器模板中,我创建了一个名为
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()


否则,您能告诉我一个更好的方法来实现我在这里想要做的事情吗?

好的,我找到了解决方案${className.substring(0,3)}.list()将为我提供所需的结果。现在我可以计算大写字母的位置并使用它。我的第二个问题仍然有效,但也就是说,是否有更好的方法可以做到这一点。您应该编辑您的问题,以反映您正在寻找的内容,这样其他用户就不会感到困惑,并为您自己已经获得的内容提供答案。