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 回答