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;
을
aah 어리석은 실수 나는 이것을 제외하고 모든 것을 시도했다 :) 고맙습니다. – Shiv