2010-06-07 15 views
6

Bir not uygulaması için, "attr" dinamik bir dize listesinde bulunan bir nesne listesi bulmam gerekiyor. Gerçek HQL sorgu daha karmaşıktır, ama yardıma ihtiyacım bit şudur: :list parametre olan, Grails bir "beklenmeyen belirteci" olarak bana geri fırlatıyorHQL/GORM'de "nerede değer dinamik listede" nasıl ifade edilir?

def result = MyObject.executeQuery("select o from MyObject as o where o.attr in :list", 
    [list: aListOfStrings]) 

Bu açıkça doğru sözdizimi değil .

HQL'de bu mümkün mü? Kriterlerin özellikle kod tabanının bu bölümünde kullanılmasını istemiyorum.

cevap

17

koyun: Pars liste:

def result = MyObject.executeQuery(
    "select o from MyObject as o where o.attr in (:list)", 
    [list: aListOfStrings]) 
+0

Bu fikir (: liste) ve [liste: aList] ile Sql.java sınıfının notlarını – AnujKu

+2

Burt 4 Başkanında kullanamıyorum! –

2

Ben performans karşılaştırır emin değilim, ama where sorguda in anahtar kelime ile düz Gorm bunu başardı:

def users = MyObject.where { attr in aListOfStrings }