[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-3866) Wrong generated SQL while doing MultiTableDelete/Update!
Ioan LUPU (JIRA)
noreply at atlassian.com
Wed Jun 24 10:41:33 EDT 2009
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=33461#action_33461 ]
Ioan LUPU commented on HHH-3866:
--------------------------------
H2 reports the following (tested with hibernate-3.3.2.GA)
app ---> 16:37:42,603 TRACE HQLQueryPlan:275 - executeUpdate: delete from model.m00.Bean04 a where a.id=:paramId
app ---> 16:37:42,603 TRACE QueryParameters:278 - named parameters: {paramId=1}
Hibernate:
/* insert-
select
for model.m00.Bean04 ids */ insert
into
HT_T_Bean04
select
bean04x0_.F_id as F_id
from
T_Bean04 bean04x0_
inner join
T_Bean03 bean04x0_1_
on bean04x0_.F_id=bean04x0_1_.F_id
where
F_id=?
app ---> 16:37:42,613 WARN JDBCExceptionReporter:100 - SQL Error: 90059, SQLState: 90059
app ---> 16:37:42,613 ERROR JDBCExceptionReporter:101 - Ambiguous column name F_ID; SQL statement:
/* insert-select for model.m00.Bean04 ids */ insert into HT_T_Bean04 select bean04x0_.F_id as F_id from T_Bean04 bean04x0_ inner join T_Bean03 bean04x0_1_ on bean04x0_.F_id=bean04x0_1_.F_id where F_id=? [90059-111]
app ---> 16:37:42,613 ERROR HibernateUtil:63 - could not insert/select ids for bulk delete
org.hibernate.exception.GenericJDBCException: could not insert/select ids for bulk delete
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.hql.ast.exec.MultiTableDeleteExecutor.execute(MultiTableDeleteExecutor.java:125)
at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:421)
at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:283)
at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1169)
at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:117)
...
Caused by: org.h2.jdbc.JdbcSQLException: Ambiguous column name F_ID; SQL statement:
/* insert-select for model.m00.Bean04 ids */ insert into HT_T_Bean04 select bean04x0_.F_id as F_id from T_Bean04 bean04x0_ inner join T_Bean03 bean04x0_1_ on bean04x0_.F_id=bean04x0_1_.F_id where F_id=? [90059-111]
at org.h2.message.Message.getSQLException(Message.java:107)
at org.h2.message.Message.getSQLException(Message.java:118)
at org.h2.message.Message.getSQLException(Message.java:77)
at org.h2.expression.ExpressionColumn.mapColumn(ExpressionColumn.java:108)
at org.h2.expression.ExpressionColumn.mapColumns(ExpressionColumn.java:85)
at org.h2.expression.Comparison.mapColumns(Comparison.java:404)
at org.h2.expression.ConditionAndOr.mapColumns(ConditionAndOr.java:216)
at org.h2.command.dml.Select.init(Select.java:698)
at org.h2.command.Parser.parseSelect(Parser.java:1336)
at org.h2.command.Parser.parseInsert(Parser.java:913)
at org.h2.command.Parser.parsePrepared(Parser.java:366)
at org.h2.command.Parser.parse(Parser.java:288)
at org.h2.command.Parser.parse(Parser.java:260)
at org.h2.command.Parser.prepareCommand(Parser.java:232)
at org.h2.engine.Session.prepareLocal(Session.java:409)
at org.h2.engine.Session.prepareCommand(Session.java:370)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1042)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:74)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:227)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
at org.hibernate.hql.ast.exec.MultiTableDeleteExecutor.execute(MultiTableDeleteExecutor.java:109)
... 8 more
> Wrong generated SQL while doing MultiTableDelete/Update!
> --------------------------------------------------------
>
> Key: HHH-3866
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3866
> Project: Hibernate Core
> Issue Type: Bug
> Components: core
> Affects Versions: 3.3.1
> Environment: hibernate-distribution-3.3.1.GA
> HSQLDB is not affected, but the others are
> Reporter: Ioan LUPU
> Attachments: MultiTableProblem.zip
>
>
> The generated SQL:
> select
> bean04x0_.F_id as F_id
> from
> T_Bean04 bean04x0_
> inner join
> T_Bean03 bean04x0_1_
> on bean04x0_.F_id=bean04x0_1_.F_id
> where
> F_id=?
> The problem: the field "F_id" can be found in both tables. HSQLDB doesn't complain about this, but other DB will.
> See the attached .zip file!
--
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