0

我在grails mongodb上有这样的代码

//myDomain
class Plugin {
    List<String> projects = []
    //projects has name and description
}

//myController
def query = null
    if (params.q != null)
    {
        def q = '%'+ params.q +'%'
        query = Plugin.where {
            (projects.name =~ q || projects.name ==~ q)
        }
    }
//return null

为什么我无法通过projects.name 找到插件?

4

1 回答 1

0

从属性定义

List<String> projects = []

项目的元素是字符串,这就是你不能查询的原因projects.name,这是 GORM 不知道的。

在您的最后一条评论中,项目实例中的值"projects": { "0": { "description": "123", "name": "cms" }, "1": { "description": "cms", "name": "codebucks" } }看起来像一个 Map,其中项目编号是键,包含名称和描述的内部映射是值,而不是 List。

为了达到您的目的,您需要修改域类定义以确保模型和数据之间的一致性。

于 2013-01-24T03:31:09.930 回答