在JPA 1.9中将​​varchar转换为类型转换

时间:2012-11-29 13:51:04

标签: jpa jpql

我想在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

请告诉我解决方案。

1 个答案:

答案 0 :(得分:3)

CAST和CONVERT不是JPA的一部分(1.0或2.0,没有1.9)。

您似乎正在使用EclipseLink,但也没有1.9版本。 EclipseLink 2.4支持这些函数,之前(2.3)您可以使用FUNC运算符来调用数据库函数,或使用本机SQL查询。