grails - GORM findAll不起作用

标签 grails gorm

一类产品:

class Product {
    static hasMany = [attributeValues: ProductAttributeValue]

    String productId
    String manufacturer
    BigDecimal price

    static constraints = {
        productId unique: true, blank: false
        manufacturer blank: false
        price min: BigDecimal.ZERO
    }
}

我想找到所有产品,其中productId包含子字符串“filter”。
我写了下一个代码:
Product.findAll {it.productId.contains(filter)}

但这是行不通的。为什么?

最佳答案

这根本不起作用!
您在这里有2个选择:

1)您使用适当的GORM技术,例如criteria queryHQL,其外观如下:

Product.findAllByProductIdIlike( "%${filter}%" ) // dyn-finders
Product.withCriteria{ ilike 'productId', "%${filter}%" } // criteria    
Product.findAll{ ilike 'productId', "%${filter}%" } // criteria
Product.findAll( "from Product where productId like '%?%'", [ filter ] ) // hql`

2)或在grails应用程序的内存(而不是数据库)中对整个数据集使用过滤-不建议:
Product.list().findAll{ it.productId.contains(filter) }

关于grails - GORM findAll不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25399858/

相关文章:

grails - 如何从 config.groovy 中的 message.properties 读取消息

eclipse - 在STS(Eclipse)IDE的All Gsp文件中包括.js文件?

grails - Grails Blob为pdf

Grails 缓存 ehcache 插件和 TTL 值

grails - GORM在调用beforeInsert方法之前检查约束

grails - Grails GORM中的一元关系

grails - Gorm一对一和一对多

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

grails - 数据库功能查询到Gorm字段的结果

grails - 奇怪的插入后