我有一個關於grails域類的相當簡單的問題。我不知道我知道如何正確地使用它,因爲我似乎無法在Google上找到答案。grails域類暴露java類的id
我有一個時髦的領域類
class DomainObject {
String name
String email
}
,並使用該域對象的Java類。
public class DomainUser {
public void method() {
DomainObject object = new DomainObject();
object.getId();
}
}
但是我上線
object.getId();
與消息得到一個錯誤:
方法getId()
是未定義類型
如何暴露因爲它是由grails應用程序自動生成的,所以它是java類的id陽離子/休眠?
什麼給你錯誤? 'grails compile'還是你的IDE?在編譯時通過AST轉換爲Grails artefact類添加了許多半魔法的東西(其中一個是用於域類的'getId()'),如果您的IDE不知道這些轉換,它將失敗。 –
此外,Grails會通過元類機制覆蓋域類構造函數,以使諸如將服務自動裝入域的工作正常工作。所以如果你想在Java代碼中「新」一個域類,你應該使用InvokerHelper.invokeNoArgumentsConstructorOf(DomainClass.class)這是調用metaclass提供的構造函數的Java方法,而不是真正的。 –