【发布时间】:2011-08-08 16:19:39
【问题描述】:
我正在使用findAll()类似SQL的方法:
MyDomainClass.findAll("firstname='George' and lastname='kuo' and username='kjlop'"),
但我有问题:
当 value 以数字开头时(例如,当 age='2poj' 时)它会抛出异常
我使用 grails 1.3.2 和 gorm-hbase 0.2.4 插件,在我的域类字段中有 String 类型。
这是堆栈跟踪: 期望范围内的令牌:'0'..'9',找到 'p'
at org.grails.hbase.ghql.LexerRules.nextToken(LexerRules.java:125)
at org.grails.hbase.finders.QueryStringTokenizer.tokenize(QueryStringTokenizer.groovy:59)
at org.grails.hbase.finders.TokenizerStrategy$tokenize.call(Unknown Source)
//---------
我想知道 groovy 改变 findAll() 方法有什么办法吗?
如果有人知道解决方案,请提供帮助。 提前致谢。
【问题讨论】:
-
我简直不敢相信 #1 - HQL 语句被正确引用。这正是您正在使用的代码吗? #2也应该工作。如果你在 hsql 上试试呢? 3. 你能试试 MyDomainClass.findAllByFirstnameAndLastname('George', 'kuo') 吗?它应该适用于所有简单类型,包括枚举。
-
@Victor 感谢您的回复...我已经尝试过 MyDomainClass.findAllByFirstnameAndLastname() 方法,它可以在值以数字开头但不适用于枚举值的情况下工作。
-
除此之外我还必须找到多个属性..
标签: grails find hadoop hsqldb hbase