2013-08-08 2 views
1

에 MySQL을 저장 프로 시저/함수에서 결과를 가져올 수 없습니다 :이 저장 함수 내 코드입니다 JPQL

CREATE DEFINER=`root`@`localhost` FUNCTION `func`() 
    RETURNS int(11) 
    LANGUAGE SQL 
    NOT DETERMINISTIC 
    CONTAINS SQL 
    SQL SECURITY DEFINER 
    COMMENT '' 
BEGIN 
DECLARE total INT DEFAULT 0; 
select count(*) INTO total from students; 
RETURN total; 
END 

자바 코드 :

query=em.createNativeQuery("{ SELECT func() }"); 
     String s=(String) query.getSingleResult(); 
     System.out.println(s); 

그러나 IR은 예외 제공 :

Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ SELECT func() }' at line 1 
Error Code: 1064 
Call: { SELECT func() } 
Query: DataReadQuery(sql="{ SELECT func() }") 
javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException 
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{ SELECT func() }' at line 1 
Error Code: 1064 
Call: { SELECT func() } 
Query: DataReadQuery(sql="{ SELECT func() }") 
    at org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:377) 
    at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:260) 
    at org.eclipse.persistence.internal.jpa.QueryImpl.getSingleResult(QueryImpl.java:516) 
    at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:400) 
    at org.ceynamon.oregano.datamigration.Test.main(Test.java:26) 
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException 
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; 

답변

1

중괄호는 SELECT funct() 주위에 필요하지 않습니다.

+0

aah 어리석은 실수 나는 이것을 제외하고 모든 것을 시도했다 :) 고맙습니다. – Shiv