Criteria API:在char列上使用greaterThan

时间:2012-09-06 09:12:20

标签: java jpa-2.0

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

这里是sql中的行:

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

someId是一个char字段,主要包含数字,但有时会包含尾随字符。 我的标准 - 部分内容如下:

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

导致

... 
AND someId > 0 
... 

(考虑到失踪')

这会搞砸查询,因为我无法在char列上使用greaterThan。

我需要的是所有只有数字而且不包含任何字母的ID。

我尝试添加

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

到我的where-clauses,但cb.and并不喜欢。 :)

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

回答自己:

我将isNumeric-thing调整为此

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

这很好。