Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
Grails创建了多对多标准_Grails_Criteria - Fatal编程技术网

Grails创建了多对多标准

Grails创建了多对多标准,grails,criteria,Grails,Criteria,假设我有以下内容(这是我网站的搜索机制) 现在我想创建一个标准: def c = Supermarket.createCriteria() def results = c.list { like("sp_street", params.street) and { ************ ... params.product } maxResults(10) } 在那里我有*我想能够找到超级市场上搜索产品的产品。怎么做 PS.If criter

假设我有以下内容(这是我网站的搜索机制)

现在我想创建一个标准:

def c = Supermarket.createCriteria()
def results = c.list {
    like("sp_street", params.street)
    and {
        ************ ... params.product
    }
    maxResults(10)

}
在那里我有*我想能够找到超级市场上搜索产品的产品。怎么做

PS.If criteria作为each()方法,迭代所有超市,我可以使用If-else语句搜索产品,如果找到,我可以使用:idEq(it),其中it是超市id。这样我就可以进行搜索。我的问题是,我不知道如何获得当前的sm超市id。有什么帮助吗

  • 应用于它内部的标准,因此将其应用于单个语句没有意义。顶级标准由defauilt制定
  • 通常最好不要使用连接器类,只需在域类中使用
    hasMany:Supermarket
    hasMany:Product
    。连接器表将由Hibernate自动生成
  • 如果您坚持使用
    ProductsSupermarket
    connector类,请在it类中添加
    belongsTo:Supermarket
    belongsTo:Product
    ,并在其他两个类中添加“hasMany:ProductsSupermarket”,否则您将失去Grails的GORM优势
  • 有一个部分
  • 对象的
    id
    非常简单:
    mySupermarket.id
    ,或者
    mySupermarket.ident()<默认情况下,代码>id
    字段自动添加到类和表中
  • 因此,问题是:

    List<Supermarket> results = Supermarket.withCriteria {
        like("sp_street", params.street)
        productSupermarket {
            product {
                idEq(params.product)
            }
            // or just eq('product', someProduct)
        }
        ************ ... params.product
        maxResults(10)
    }
    
    List results=Supermarket.withCriteria{
    例如(“sp_街”,params.街)
    产品超市{
    产品{
    idEq(参数产品)
    }
    //或者只是eq(‘产品’,someProduct)
    }
    ************…副产品
    最大结果(10)
    }
    
    List<Supermarket> results = Supermarket.withCriteria {
        like("sp_street", params.street)
        productSupermarket {
            product {
                idEq(params.product)
            }
            // or just eq('product', someProduct)
        }
        ************ ... params.product
        maxResults(10)
    }