2012-09-06 25 views
0

我不得不重建一個查詢,除了一行之外一切正常。Criteria API:在char列上使用greaterThan

在這裏,行SQL:

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

someId是主要包含數字,但有時尾隨字符的字符字段。 的是我的標準部分看起來是這樣的:

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

導致

... 
AND someId > 0 
... 

(視缺少「)

這螺絲了查詢,因爲我不能使用char-column上的更大值。

我需要的是所有someIds只是由數字組成,不包含任何字母。

我嘗試添加一個

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

到我這裏從句,但cb.and犯規這樣。 :)

任何想法?

回答

1

要回答自己:

我調整了ISNUMERIC,事情到此

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

,這工作得很好。