2012-11-29 1 views
1

jarchar에서 int로 varchar를 변환하고 싶습니다. 필드는 varchar이지만 모든 데이터는 정수 형식으로 만됩니다. 내 JPA 라이브러리 버전이 1.9VARCHAR에서 JPA 1.9로 typecasting하는 방법

이미 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 

내 자바 콘솔 오류는 다음과 같습니다

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 버전을 발견했다고 생각합니다. 창> 환경 설정> JPA

버전 1.0

나에게 해결책을 알려주세요입니다.

+0

JPA는 1.0, 2.0 및 2.1 만 제공합니다 (아직 출시되지 않음). 아마도 당신은 그 "1.9"와 다른 것을 의미합니다 ... – DataNucleus

답변

3

CAST 및 CONVERT는 JPA (1.0 또는 2.0 및 1.9가 없음)의 일부가 아닙니다.

EclipseLink를 사용하고있는 것처럼 보이지만 1.9 버전도 없습니다. 이 함수는 EclipseLink 2.4에서 지원됩니다. 이전에는 (2.3) FUNC 연산자로 데이터베이스 함수를 호출하거나 원시 SQL 쿼리를 사용할 수있었습니다.

+0

MyEclipse IDE를 사용하고 있습니다. 따라서 내부적으로는 Eclipselink를 사용할 수 있습니다. 제 EclipseLink 버전을 어디서 찾을 수 있습니까? 내 JPA 쿼리에서 FUNC/FUNCTION 메서드를 사용하려면 어떻게해야합니까? (SQLSERVER 2008을 사용하고 있습니다.) – SRIHARI

관련 문제