jpa - unable to get result from MySql Stored Procedure/Function to JPQL -
this code of stored function:
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(*) total students; return total; end java code:
query=em.createnativequery("{ select func() }"); string s=(string) query.getsingleresult(); system.out.println(s); but ir gives exception:
internal exception: com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception: have error in sql syntax; check manual corresponds mysql server version right syntax use near '{ select func() }' @ 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: have error in sql syntax; check manual corresponds mysql server version right syntax use near '{ select func() }' @ line 1 error code: 1064 call: { select func() } query: datareadquery(sql="{ select func() }") @ org.eclipse.persistence.internal.jpa.queryimpl.getdetailedexception(queryimpl.java:377) @ org.eclipse.persistence.internal.jpa.queryimpl.executereadquery(queryimpl.java:260) @ org.eclipse.persistence.internal.jpa.queryimpl.getsingleresult(queryimpl.java:516) @ org.eclipse.persistence.internal.jpa.ejbqueryimpl.getsingleresult(ejbqueryimpl.java:400) @ 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: have error in sql syntax;
the braces around select funct() not needed
Comments
Post a Comment