我想在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
请告诉我解决方案。
答案 0 :(得分:3)
CAST和CONVERT不是JPA的一部分(1.0或2.0,没有1.9)。
您似乎正在使用EclipseLink,但也没有1.9版本。 EclipseLink 2.4支持这些函数,之前(2.3)您可以使用FUNC运算符来调用数据库函数,或使用本机SQL查询。