1

jpqlでvarcharをintに変換したい。フィールドは varchar ですが、すべてのデータは整数形式のみになります。JPA ライブラリのバージョンは 1.9 です

すでに CAST メソッドと CONVERT メソッドを使用しましたが、機能しませんでした。

私のクエリは次のとおりです。

select SUM(Cast(model.wagonsRequired as INT)) from IptRailcargolines model where model.iptRailwayindent.id=7

また

select SUM(CONVERT(INT, model.wagonsRequired)) from IptRailcargolines model where model.iptRailwayindent.id=7

私のJavaコンソールエラーは次のとおりです。

Caused by: Exception [TOPLINK-8025] (Oracle TopLink Essentials - 2.0 (Build b40-rc (03/21/2007))): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: Syntax error parsing the query [select SUM(FUNCTION(CONVERT(INT, model.wagonsRequired))) from IptRailcargolines model where model.iptRailwayindent.id=:headId], line 1, column 20: unexpected token [(].
Internal Exception: line 1:20: unexpected token: (

問題を解決するために私を助けてください。

お返事ありがとうございます...

MyEclipse IDE を使用しています。そのため、内部的には Eclipselink を使用する可能性があります。EclipseLink のバージョンはどこで確認できますか? JPAクエリでFUNC / FUNCTIONメソッドを使用するにはどうすればよいですか。(私は SQLSERVER 2008 を使用しています。)

myeclipse で eclipseLink バージョンを見つけたと思います。Windows > 設定 > JPA

バージョンは1.0です

解決策を教えてください。

4

1 に答える 1

3

CAST と CONVERT は JPA の一部ではありません (1.0 または 2.0 であり、1.9 はありません)。

EclipseLink を使用しているようですが、1.9 バージョンもありません。これらの関数は EclipseLink 2.4 でサポートされています。以前 (2.3) では、FUNC 演算子を使用してデータベース関数を呼び出したり、ネイティブ SQL クエリを使用したりできました。

于 2012-11-29T14:41:40.680 に答える