1

jpa 2.0 を使用して部分文字列クエリを実行しようとしていますが、これを行う方法がわかりません。今まで私はこのコードを持っています:

time = builder.between(
                matchesRoot.<Integer>get("startDateTime").toString().substring(8, 13),
                Integer.getInteger(DateTimeUtil.dateTimeWithoutFormat(searchCommercialsDTO.getFinalDate())),
                Integer.getInteger(DateTimeUtil.dateTimeWithoutFormat(searchCommercialsDTO.getIniDate()))
                );

しかし、このエラーのためにコンパイルできないため、機能していません:

between(String,Integer,Integer) メソッドの適切なメソッドが見つかりませんタイプ String は仮パラメータ タイプ Expression に準拠します) メソッド CriteriaBuilder. between(Expression,Expression,Expression) は適用されません (タイプ変数 Y#2 のインスタンスが存在しないため、引数タイプ String は仮パラメータ タイプ Expression に準拠します) ここで、Y#1、Y#2 は型変数です: Y#1 extends Comparable 宣言されたメソッド between(Expression,Y#1,Y#1) Y#2 extends Comparable 宣言されたメソッド between(Expression,Expression,Expression)

助言がありますか?ありがとう!

4

1 に答える 1

0

部分文字列はCriteriaBuilder.substringを介して使用できます。もちろん、それは整数ではなく文字列に作用します。

現在のアプローチでは、 Pathの toString メソッドを呼び出しています。結果の SQL の部分文字列関数と、クエリの作成に使用されるクラスの toString メソッドとの間に接続はありません。

于 2013-08-18T17:58:20.713 に答える