grails - 如何只获取已在grails中设置了一些值而不是列表的String的一个值?

标签 grails gorm

我的数据库中有一列具有此值“Bob; Steve; Fred”。该列是一个字符串(不是列表),我希望能够构建一个查询,该查询为我提供了我通过参数传递的值。

这是我的域名:

String name (values that contain name is: Bob;Steve;Fred)

我想做的是建立一个查询,该查询仅使我获得在方法中传递的名称:

这是我正在尝试做的方法:
def updateName(String myName) {
    MyDomain md = MyDomain.findByName(myName)
    if (!md) {
       log.warn "name not found [" + name+ "]"
    }

}

有了这个,我总是得到md = null

例如,我想要的是。如果我通过我想要的myName = Bob,则在我的字符串名称中找到具有三个名称(Bob; Steve; Fred)的Bob:
 MyDomain md = MyDomain.findByName(Bob)
 md should be = Bob

提前致谢

最佳答案

INTRO
尽管@tim_yates指出了对现有问题的一个答案,但是使用我的答案以及您设置域类的方法并非最佳方法可能会出现问题。
如何在域中设置列表
Grails域类具有hasMany selector,因此您的域类应如下所示:

class MyDomain {
    static hasMany = [names: String]
    List names
}

如何添加名称
当具有域对象并想要向列表添加另一个名称时,可以使用myDomainObject.addToNames(thename) 如何按名称检索
如前所述,这需要createCriteria():
def results = MyDomain.createCriteria().list{
    "in"("names",someName)
}

这将返回所有域对象的列表。如果要从中获取一些数据,则可以使用each循环浏览,并使用it引用一项:
results.each{
    println it.names
}

关于grails - 如何只获取已在grails中设置了一些值而不是列表的String的一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36865411/

相关文章:

hibernate - Grails在命名查询中使用继承的属性

hibernate - Grails + GORM:是否有等同于 hibernate 的@Generated?

grails - Grails-渲染模型和变量

sql - 是否可以使用Postgresql的Explain来分析Grails GORM生成的查询

hibernate - 尝试在域中查找空值时,grails方法缺少异常

hibernate - Grails Hibernate持久化设置:如何不自动保存

hibernate - Grails-是级联事务

sorting - 如何在 Grails 中按可空关联的属性排序?

grails - 如何使用 MockFor 在 HttpBuilder 上模拟客户端?

servlets - web.xml中没有GrailsDispatcherServlet的映射