Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 为什么Grails没有返回I';我在找什么?_Hibernate_Grails_Criteria - Fatal编程技术网

Hibernate 为什么Grails没有返回I';我在找什么?

Hibernate 为什么Grails没有返回I';我在找什么?,hibernate,grails,criteria,Hibernate,Grails,Criteria,以下是我正在使用的域类: class Foo { String name, type static hasMany = [ bars: Bar ] List bars static mapping = { bars lazy:false } } class Bar { String value static belongsTo = Foo } 我编写了一些条件查询,以便为用户提供一个查询界面。

以下是我正在使用的域类:

class Foo {
    String name,
           type

    static hasMany = [ bars: Bar ]

    List bars

    static mapping = {
        bars lazy:false
    }
}

class Bar {
    String value
    static belongsTo = Foo
}
我编写了一些条件查询,以便为用户提供一个查询界面。该界面提供了一个下拉列表,以便为Bar选择特定值。当用户试图为Bar类指定一个值,并希望获取相关的FOO时,就会出现问题。以下是条件查询:

def query = {
    and {
        if (params.name && params.name != '') {
            ilike('name', "%${params.name}%")
        }
        if (params.type && params.type != '') {
            ilike('type', "%${params.type}%")
        }
        if (params.value && params.value != '') {
            bars {
                eq("value", params.value)  
            }
        }
    }
}

def results = Foo.createCriteria().list(params,query)
本质上,看起来发生的事情是,只有与指定值匹配的条才会与Foo对象一起返回,即使Foo对象有其他与该对象不匹配的条。我希望它返回所有的条,因为我正在查询具有匹配条的Foo

有什么想法吗?需要进一步澄清吗?

根据您的查询,看起来不错

我在
Foo
对象中看到了问题。尝试删除
列表栏
。与
Bar
的关系已经用
static hasMany=[Bar:Bar]
定义

更新 我会先说。实施他们的榜样。然后尝试一步一步地将其更改为我的解决方案。您将看到问题所在。

根据您的查询,问题看起来很好

我在
Foo
对象中看到了问题。尝试删除
列表栏
。与
Bar
的关系已经用
static hasMany=[Bar:Bar]
定义

更新
我会先说。实施他们的榜样。然后尝试一步一步地将其更改为我的解决方案。您将看到问题所在。

我希望条形图是一个列表,而不是默认的java.util.Set。我希望条形图是一个列表,而不是默认的java.util.Set。