java - MySQL Syntax Error Exception with eclipselink -


i'm using jpa eclipselink mysql 5.7 database when create query contain union error

internal exception: com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception: have error in sql syntax; check manual corresponds mysql server version right syntax use near 'union (select t1.id, t1.fullname patienttable t1))' @ line 1 

where query code is

entitymanager entitymanager = datamain.createentitymanager();      string querystring = "";      querystring = "" +         "select " +         "   patienttable.id, patienttable.fullname " +         "from " +         "   patienttable patienttable " +         "union " +         "select " +         "   patienttable.id, patienttable.fullname " +         "from " +         "   patienttable patienttable";       query query = entitymanager.createquery(querystring);     query.getresultlist().foreach(system.out::println); 

the full error stack

thu apr 06 14:34:56 edt 2017 warn: establishing ssl connection without server's identity verification not recommended. according mysql 5.5.45+, 5.6.26+ , 5.7.6+ requirements ssl connection must established default if explicit option isn't set. compliance existing applications not using ssl verifyservercertificate property set 'false'. need either explicitly disable ssl setting usessl=false, or set usessl=true , provide truststore server certificate verification. exception in thread "main" javax.persistence.persistenceexception: exception [eclipselink-4002] (eclipse persistence services - 2.5.2.v20140319-9ad6abd): 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 'union (select t1.id, t1.fullname patienttable t1))' @ line 1 error code: 1064 call: (select t0.id, t0.fullname patienttable t0 union (select t1.id, t1.fullname patienttable t1)) query: reportquery(referenceclass=patienttable sql="(select t0.id, t0.fullname patienttable t0 union (select t1.id, t1.fullname patienttable t1))")     @ org.eclipse.persistence.internal.jpa.queryimpl.getdetailedexception(queryimpl.java:378)     @ org.eclipse.persistence.internal.jpa.queryimpl.executereadquery(queryimpl.java:260)     @ org.eclipse.persistence.internal.jpa.queryimpl.getresultlist(queryimpl.java:469)     @ com.tawaaq.app.data.persistence.query.patient.patientquery.main(patientquery.java:49) caused by: exception [eclipselink-4002] (eclipse persistence services - 2.5.2.v20140319-9ad6abd): 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 'union (select t1.id, t1.fullname patienttable t1))' @ line 1 error code: 1064 call: (select t0.id, t0.fullname patienttable t0 union (select t1.id, t1.fullname patienttable t1)) query: reportquery(referenceclass=patienttable sql="(select t0.id, t0.fullname patienttable t0 union (select t1.id, t1.fullname patienttable t1))")     @ org.eclipse.persistence.exceptions.databaseexception.sqlexception(databaseexception.java:340)     @ org.eclipse.persistence.internal.databaseaccess.databaseaccessor.basicexecutecall(databaseaccessor.java:682)     @ org.eclipse.persistence.internal.databaseaccess.databaseaccessor.executecall(databaseaccessor.java:558)     @ org.eclipse.persistence.internal.sessions.abstractsession.basicexecutecall(abstractsession.java:2002)     @ org.eclipse.persistence.sessions.server.serversession.executecall(serversession.java:570)     @ org.eclipse.persistence.sessions.server.clientsession.executecall(clientsession.java:250)     @ org.eclipse.persistence.internal.queries.datasourcecallquerymechanism.executecall(datasourcecallquerymechanism.java:242)     @ org.eclipse.persistence.internal.queries.datasourcecallquerymechanism.executecall(datasourcecallquerymechanism.java:228)     @ org.eclipse.persistence.internal.queries.datasourcecallquerymechanism.executeselectcall(datasourcecallquerymechanism.java:299)     @ org.eclipse.persistence.internal.queries.datasourcecallquerymechanism.selectallrows(datasourcecallquerymechanism.java:694)     @ org.eclipse.persistence.internal.queries.expressionquerymechanism.selectallrowsfromtable(expressionquerymechanism.java:2738)     @ org.eclipse.persistence.internal.queries.expressionquerymechanism.selectallreportqueryrows(expressionquerymechanism.java:2675)     @ org.eclipse.persistence.queries.reportquery.executedatabasequery(reportquery.java:848)     @ org.eclipse.persistence.queries.databasequery.execute(databasequery.java:899)     @ org.eclipse.persistence.queries.objectlevelreadquery.execute(objectlevelreadquery.java:1127)     @ org.eclipse.persistence.queries.readallquery.execute(readallquery.java:403)     @ org.eclipse.persistence.queries.objectlevelreadquery.executeinunitofwork(objectlevelreadquery.java:1215)     @ org.eclipse.persistence.internal.sessions.unitofworkimpl.internalexecutequery(unitofworkimpl.java:2896)     @ org.eclipse.persistence.tools.profiler.performanceprofiler.profileexecutionofquery(performanceprofiler.java:426)     @ org.eclipse.persistence.internal.sessions.abstractsession.executequery(abstractsession.java:1802)     @ org.eclipse.persistence.internal.sessions.abstractsession.executequery(abstractsession.java:1786)     @ org.eclipse.persistence.internal.sessions.abstractsession.executequery(abstractsession.java:1751)     @ org.eclipse.persistence.internal.jpa.queryimpl.executereadquery(queryimpl.java:258)     ... 2 more 

i recreate oracle don't have mysql instance right now.

it worked when removed as when assigning aliases.

using example:

querystring = "" +     "select " +     "   patienttable.id, patienttable.fullname " +     "from " +     "   patienttable patienttable " +     "union " +     "select " +     "   patienttable.id, patienttable.fullname " +     "from " +     "   patienttable patienttable"; 

by way, both statements union-ing same, intended?

edit: nvm, according thread jpa doesn't support union: union in jpa query - same table

in thread workaround described: jpql equivalent of sql query using unions , selecting constants


Comments

Popular posts from this blog

inversion of control - Autofac named registration constructor injection -

verilog - Systemverilog dynamic casting issues -

ios - Change Storyboard View using Seague -