2

如何在 Java/Spring 中的服务层中使用 grails 域类(在 groovy 中)。

当使用 grails MVC 时,一切都很好,因为我可以使用控制器访问域对象并在它们上调用 CRUD 和其他动态方法。但是,我想知道是否有一种干净的方法可以从 Java 中做到这一点——比如服务层。例如,我可能想开发一个需要使用域对象来访问数据库的报告框架。

我希望问题很清楚。这应该是每个人在合理规模的项目中都必须面临的标准问题。我只是想知道它是如何解决的……也许我在这里遗漏了一些东西。

谢谢。

4

3 回答 3

2

org.codehaus.groovy.runtime.InvokerHelper 使这非常简单;看到这个邮件列表线程: http: //grails.1312388.n4.nabble.com/Calling-Dynamic-Finders-on-Domain-Class-via-the-MetaClass-td1596496.html

于 2010-04-26T22:34:57.530 回答
1

示例代码片段:

import my.package.User
import org.codehaus.groovy.runtime.InvokerHelper;


List allInstances = (List)InvokerHelper.invokeMethod(User.class, "list", null)); 


User one=(User)InvokerHelper.invokeMethod(User.class, "get", id); 
于 2014-12-03T13:25:05.380 回答
0

如果InvokerHelper你可以访问 GORM 类,我会在 GORM 调用周围放置包装函数——那么 Java 类会看到这一点。

static String List getAll() { return User.list() }
static String User getByID(long id) { return User.get(id) }

这看起来更简洁,并且不会在您的 Java 代码中依赖 Groovy 类。

于 2016-08-11T14:45:11.827 回答