0

我必须重建一个查询,除了一行一切正常。

这是sql中的行:

... 
AND someId > '0'
...

someId 是一个字符字段,主要包含数字,但有时包含尾随字符。我的标准部分看起来像这样:

cb.greaterThan(myClass.get(MyClass_.someId), 0)

这导致

... 
AND someId > 0 
... 

(关于缺少的')

这搞砸了查询,因为我不能在字符列上使用大于。

我需要的是所有一些仅由数字组成且不包含任何字母的 ID。

我尝试添加一个

cb.function("isNumeric", Boolean.class, myClass.get(MyClass_.someId))

到我的 where 子句,但 cb.and 不喜欢那样。:)

有任何想法吗?

4

1 回答 1

1

回答我自己:

我调整了 isNumeric-thing 到这个

c.equal(cb.function("isNumeric", Boolean.class, myClass.get(MyClass_.someId)), 1)

这很好用。

于 2012-09-06T09:26:51.610 回答