grails - Grails域名查询列表

标签 grails gorm named-query domain-object

我有一个简单的Grails应用程序。我有几个 Realm ,例如以下。场景是Person有很多电话(但是Person类没有将电话列表作为变量:惰性单端关联)。

class Person implements Serializable {
    ....
}

class Telephone implements Serializable{
    String number
    static belongsTo = [person : Person]
    static mapping = {
        .....
        person lazy: false
    }
}

现在,我有一个必须通过电话号码搜索此人的要求。我有一个字符串电话号码列表。我需要让所有拥有至少一个该电话号码的人。我需要编写namedQueries,但是我对这个 Realm 还很陌生。是否可以为此编写命名查询?还是我需要在Person类中定义的映射为
set telephone
static hasMany = [
        telephone: Telephone
]

以及如何定义namedQueries以适合我的要求

提前致谢

最佳答案

我相信它能够看到您正确的人的电话

set telephone
static hasMany = [
        telephone: Telephone
]

需要定义,但是一旦定义,您就可以执行以下操作:
 static namedQueries = {
       withSameTelephone {telephoneNumber -> 
             telephone{ eq 'number' telephoneNumber }
       }
   }

并像这样使用它:
Person.withSameTelephone('091511234512').list()

我想你需要通过 list
 static namedQueries = {
       withSameTelephoneInList {telephoneNumberList -> 
             telephone{ 'in'( 'number' telephoneNumber) }
       }
   }

所以你可以这样做:
Person.withSameTelephoneInList(['091511234512','091511234513','091511234514']).list()

关于grails - Grails域名查询列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33119309/

相关文章:

grails - DC Crossfilter隐藏特定选择

grails - Grails:从特定gsp页面的布局中跳过js

grails - 使用Domain.load()代理替代Domain CRUD方法

java - JPA 命名查询无法使用 Hibernate 解析

eclipse - 为什么我无法下载STS?

javascript - 如何使用 Grails Controller 中的 JSON 填充选择框

grails - 如何编写涉及三个域的相对简单的条件查询?

grails - 在grails应用程序中将Neo4j插件与 'rest'类型一起使用时出现问题

Hibernate 命名查询和启动性能

grails - 在具有域继承的Grails GORM中,是否可以通过查询父类(super class)来找到特定的子类实例