[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-3476) Generation of invalid SQL by HQL Delete
Ramon Casha (JIRA)
noreply at atlassian.com
Thu Apr 22 03:41:36 EDT 2010
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=36622#action_36622 ]
Ramon Casha commented on HHH-3476:
----------------------------------
This flaw has been around for years. Can someone look into this please?
> Generation of invalid SQL by HQL Delete
> ---------------------------------------
>
> Key: HHH-3476
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3476
> Project: Hibernate Core
> Issue Type: Bug
> Components: core
> Affects Versions: 3.1.3, 3.2.6
> Environment: MS SQL Server 2000, Hibernate 3.1.3 and Hibernate 3.2.6 GA
> Reporter: Daniel Nunes
> Attachments: grupo.rar, hibernate.cfg.xml
>
>
> Hibernate generates invalid DML command for HQL Delete statement.
> When doing:
> Integer vals[] = {1,3};
> Query q = ugDAO.createQuery("delete UsuarioGrupo usuariorGrp"+
> " where usuariorGrp.usuario.idusuario = :idUsr"+
> " and usuariorGrp.grupo.idgrupo in (:idsGrupo)"+
> " and usuariorGrp.grupo.cxpostal.idcxpostal = :idCx");
> q.setParameterList("idsGrupo", vals);
> q.setInteger("idUsr", 77);
> q.setInteger("idCx", 2);
> It generates an SQL like this:
> Hibernate: delete from vanpix.dbo.usuario_grupo, vanpix.dbo.grupo grupo1_ where idusuario=? and (idgrupo in (? , ?)) and idcxpostal=?
> 17:26:22,406 DEBUG IntegerType:133 - binding '77' to parameter: 1
> 17:26:22,406 DEBUG IntegerType:133 - binding '1' to parameter: 2
> 17:26:22,406 DEBUG IntegerType:133 - binding '3' to parameter: 3
> 17:26:22,406 DEBUG IntegerType:133 - binding '2' to parameter: 4
> 17:26:22,453 WARN JDBCExceptionReporter:77 - SQL Error: 170, SQLState: 37000
> 17:26:22,453 ERROR JDBCExceptionReporter:78 - Line 1: Incorrect syntax near ','.
> Throwing the exception:
> Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute update query
> at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
> at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
> at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:84)
> at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:396)
> at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:259)
> at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1141)
> at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94)
> at com.pix.tests.HibernateTests.main(HibernateTests.java:37)
> Caused by: java.sql.SQLException: Line 1: Incorrect syntax near ','.
> at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
> at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
> at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
> at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
> at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:584)
> at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:546)
> at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeUpdate(JtdsPreparedStatement.java:505)
> at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
> at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:75)
> ... 5 more
> The HBMs are in the attachment.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list