grails - 从对象读取字符串

标签 grails grails-2.0 grails-domain-class

抱歉,这个简单的问题。但是,我很困惑。

我想从数据库中读取所有字符串。

基本上,我的 Controller 中有一个EmailSettings emailAddresses = new EmailSettings()对象,想读取保存在emailSettings Domain object中的所有电子邮件。该类如下所示:

class EmailSettings {

    String emailAddress

    static constraints = {

        emailAddress(blank: false, nullable: false, email: true)

    }
}

我的问题是我没有从emailAddresses对象中获取保存的电子邮件地址。我尝试使用list()getEmailAddress(例如emailAddresses.getEmailAddress().toString(),即null,即使在此域对象下保存的db ARE电子邮件地址中)也无法正常工作,或者出现异常。

关于如何获取电子邮件地址的任何建议,这些电子邮件地址以数组形式保存在数据库中?

感谢您的回答!

最佳答案

您正在通过对其进行更新来创建新的域实例,这将永远不会为您提供持久化在db中的结果。要从db中的所有EmailSettings获取emailAddress,可以将其用作:

EmailSetting.all*.emailAdress

要么
EmailSetting.withCriteria {
    projections {
        property 'emailAddress'
    }
}

或者也可以将DetachedCriteria与上述投影配合使用。

更新
第一种方法将很昂贵,因为将提取所有行,然后从每个行派生emailAddress。我完全错过了提及为什么我对标准使用第二种方法的想法。使用Projections,您只会获得所需的属性,而不是获取行本身。感谢Graeme。

关于grails - 从对象读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23715449/

相关文章:

Grails Controller 操作抽象命令对象参数

validation - 修改flash.message中的消息

grails - 如何在Grails中获取请求的Mime类型?

grails - 如何为每个类实例设置唯一约束?

任何集成测试中的 Grails 3.0.6 java.lang.IllegalStateException

hibernate - Grails中的悲观锁定3+ lock()

grails - spring-security-core:2.0-RC5给出错误

grails - Grails 服务中的服务声明错误

mysql - Grails id 映射自动增量 - MySQL

hibernate - 当一个人的pk引用另一个人的pk时,如何在GORM中映射实体