2009-01-21 4 views
5

Как подсчитать количество сообщений, длина которых составляет от 0 до 25 символов?Как считать в Grails/Hibernate: Message.countBy

Message.countBy('from Message m where m.body.length <= 25') 

К сожалению для меня, countBy не принимает строковый параметр.

+0

На данный момент я просто собираюсь сделать подход бедного человека и загрузить их в карту и сделать цикл for! – user57660

+0

Спасибо за ответ! Я не знаю, как «закрыть» это сообщение. – user57660

+0

Ну, если ответ сработал, вы можете щелкнуть галочкой ответ, чтобы принять его. Если это не так, тогда вы можете подождать лучшего ответа или комментариев о том, почему этого не произошло. –

ответ

13

Глядя на динамический эталонный метод, лучшее, что вы, вероятно, можете сделать, это использовать executeQuery вместо count*:

Message.executeQuery('select count(m) from Message m where SIZE(m.body) < 25') 

EDIT: Вот несколько ссылок, которые могли бы помочь с написанием/выполнения запроса:

+0

Спасибо! Вы не можете сделать m.body.length, который я обнаружил. Вы должны сделать РАЗМЕР (m.body) Но очень близко – user57660

+0

Я изменю его. Я не был уверен в точном HQL, я только что скопировал то, что вы использовали, но с другим методом GORM. –

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