2012-06-05 2 views
1

Предположит следующее:GORM/Grails :: возможен запрос на основе содержимого списка в модели?

class Thing { 

    String name 
    List<String> tags 

    static constraints = { 
     name(nullable: false) 
     tags(nullable: false) 
    } 

} 

Я хочу знать, если его можно, используя GORM, чтобы выполнить запрос для экземпляров домена на основе значений в соответствующих списках

Например: Есть ли динамические Гормы искатели запрашивать такие вещи, как «Найти все вещи, у которых есть тег« Видео », или« Найти все вещи с именем = «Product1», которые имеют тег «Изображение» '

Просто хочу знать, есть ли красивый лаконичный путь сделать это с помощью Grails & Gorm, в отличие от получения списка вещей и итерации через него, нахождение тех, у которых есть соответствующие теги, и добавления их в список результатов.

Спасибо!

+0

Возможно, стоит добавить, что мы используем MongoDB, а не традиционный mysql, насколько я понимаю, HQL не вариант? (опять же я могу ошибаться) –

+0

Вы правы, HQL (язык запросов гибернации) предназначен только для традиционных реляционных/SQL-баз данных. BTW, у Grails есть плагин GORM для MongoDB, а также –

ответ

1

Один из способов (хотя и не обязательно является наиболее эффективным!) Будет возвращать весь список Thing ов например Thing.list(), а затем отфильтровать полученный список с помощью findAll.

List results = Thing.list().findAll{it.tags.contains("Image")}

Насколько велик ваш список Thing с и связанный с Tag, вероятно, будет?

Смежные вопросы