【问题标题】:Varchar to int typecasting in JPA 1.9JPA 1.9 中的 Varchar 到 int 类型转换
【发布时间】: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”表示别的意思......

标签: jpa jpql


【解决方案1】:

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

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

【讨论】:

  • 我正在使用 MyEclipse IDE。所以,可能在内部它会使用 Eclipselink。你能告诉我在哪里可以找到我的 EclipseLink 版本吗?以及如何在我的 JPA 查询中使用 FUNC / FUNCTION 方法。 (我使用的是 SQLSERVER 2008。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 2016-09-14
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
相关资源
最近更新 更多