この sql を grails GORM に変換しようとしていますが、長さ関数の使用方法がわかりません。
これは私が必要とするSQLです
select * from stats where length(hostname) <=0 order by hostname limit 1,10
http://grails.org/doc/2.2.1/ref/Domain%20Classes/createCriteria.html createCriteriaを試しましたが、エラー メッセージが表示されました。
この SQL を GORM クエリに変換するにはどうすればよいですか。
def c = Status.createCriteria()
def results = c.list (max: 10, offset: 10) {
length("hostname") <=0
}
results.each{println it}
エラーメッセージ
groovy.lang.MissingMethodException: No signature of method: grails.orm.HibernateCriteriaBuilder.length() is applicable for argument types: (java.lang.String) values: [hostname]
Possible solutions: getAt(java.lang.String), select(java.lang.String), avg(java.lang.String), count(java.lang.String), gt(java.lang.String, java.lang.Object), gte(java.lang.String, java.lang.Object)
このHSQLは機能します:
def results = Status.findAll("from Status as b where " +
"length(b.hostname) <= 0 " +
"order by b.hostname asc",
[max: 10, offset: 20])
- これには createCriteria をどのように使用しますか?
- createCriteria と HSQL のどちらが優れていますか?
ありがとう