0

クエリを再構築する必要がありますが、1 行を除いてすべて正常に動作します。

ここでSQLの行:

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

someId は、ほとんどが数字を含む文字フィールドですが、末尾に文字が含まれることもあります。私の基準部分は次のようになります。

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

その結果、

... 
AND someId > 0 
... 

(欠落している ' について)

文字列でgreaterThanを使用できないため、これによりクエリが台無しになります。

私が必要としているのは、数字だけで構成され、文字を含まないすべての someIds です。

を追加してみました

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 に答える