grails域类公开java类的id

时间:2012-12-08 06:24:30

标签: java hibernate grails groovy

我有一个关于grails域类的相当简单的问题。我不知道如何正确地说出来,因为我似乎无法在谷歌上找到答案。

我有一个groovy域类

class DomainObject {
    String name
    String email
}

以及使用此域对象的java类。

public class DomainUser {
    public void method() {
        DomainObject object = new DomainObject();
        object.getId();
    }
}

然而我在行上出现错误

object.getId();

使用消息:

类型

的方法getId()未定义

如何将id暴露给java类,因为它是由grails application / hibernate自动生成的?

1 个答案:

答案 0 :(得分:1)

Id字段是在运行时生成的,java不知道有关动态引用的任何信息。 从服务层访问该域。 http://grails.org/doc/latest/guide/services.html#usingServicesFromJava

还谷歌:“grails access service java”

第一个结果是http://grails.1312388.n4.nabble.com/Question-How-do-I-reference-a-Grails-service-from-within-Java-class-td1462056.html

你可以在DomainService.groovy

中写一些这样的东西
class DomainService(){
    def persistAndGetNewDomain(){
       new Domain().save(flush:true)    
    }
}

此外,您必须将id字段添加到域类

class DomainObject {
    Long id
    String name
    String email
}