【发布时间】:2012-11-29 13:51:04
【问题描述】:
我想在 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
请告诉我解决方法。
【问题讨论】:
-
JPA 只有 1.0、2.0 和 2.1(尚未发布)。也许你用“1.9”表示别的意思......