[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2211) A createQuery() caused ORA-00904 error
Jitendra Singh (JIRA)
noreply at atlassian.com
Tue Jun 12 16:30:04 EDT 2007
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_27225 ]
Jitendra Singh commented on HHH-2211:
-------------------------------------
Hi Sodia,
Your query is not generating correct sequel. It is generating :
insert
into
EVENTS_HISTORY
( EVENT_ID, EVENT_DATE, title ) select
event0_.EVENT_ID as col_0_0_,
event0_.EVENT_DATE as col_1_0_,
event0_.title as col_2_0_
from
EVENTS event0_
where
(
event0_.title like 'BUY%'
)
and (
exists (
select
1
from
PERSON_EVENT personeven1_
where
personeven1_.EVENT_ID=EVENTS.EVENT_ID
)
)
Look at the last line, it will not work as it is. If we modify the query to :
insert into EventHistory ( id, date, title )
select id, date, title from Event e where e.title like 'BUY%'
and exists
( select 1 from PersonEvent p,Event ev where p.id=ev.id)
then it generates:
insert
into
EVENTS_HISTORY
( EVENT_ID, EVENT_DATE, title ) select
event0_.EVENT_ID as col_0_0_,
event0_.EVENT_DATE as col_1_0_,
event0_.title as col_2_0_
from
EVENTS event0_
where
(
event0_.title like 'BUY%'
)
and (
exists (
select
1
from
PERSON_EVENT personeven1_,
EVENTS event2_
where
personeven1_.EVENT_ID=event2_.EVENT_ID
)
)
which I think is the right query.
Let me know if this is not what you are trying to do in the query.
Regards,
Jitendra
> A createQuery() caused ORA-00904 error
> --------------------------------------
>
> Key: HHH-2211
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2211
> Project: Hibernate3
> Issue Type: Bug
> Components: query-hql
> Affects Versions: 3.2.0.ga
> Environment: JDK1.5.0+Eclipse3.2.1+Hibernate3.2.0.ga+Oracle9.2.0+WinXp(Prof)Sp2
> Reporter: sodia
> Priority: Trivial
> Attachments: hiber-grammar-sql-and-errlog.zip, hiber-grammar-test.zip
>
> Original Estimate: 2 weeks
> Remaining Estimate: 2 weeks
>
> I want to try the following sql under hibernate,it failed.
> (The project is build on the basis of hibernate3.2's tutorial)
> String hqlAlias =
> "insert into EventHistory ( id, date, title )" +
> " select id, date, title from Event e" +
> " where e.title like 'BUY%'" +
> " and exists" +
> " ( select 1 from PersonEvent p" +
> " where p.id=e.id)";
> int resultAlias = session.createQuery(hqlAlias).executeUpdate();
> But it works nice under sqlplus.
> INSERT INTO EVENTS_HISTORY
> SELECT * FROM EVENTS
> WHERE TITLE LIKE 'BUY%'
> AND EXISTS
> ( SELECT 1 FROM PERSON_EVENT
> WHERE EVENT_ID=EVENTS.EVENT_ID);
> The 4 lines of error log is like this:
> 15:33:29,906 DEBUG SQL:393 - insert into EVENTS_HISTORY ( EVENT_ID, EVENT_DATE, title ) select event0_.EVENT_ID as col_0_0_, event0_.EVENT_DATE as col_1_0_, event0_.title as col_2_0_ from EVENTS event0_ where (event0_.title like 'BUY%') and (exists (select 1 from PERSON_EVENT personeven1_ where personeven1_.EVENT_ID=EVENTS.EVENT_ID))
> Hibernate: insert into EVENTS_HISTORY ( EVENT_ID, EVENT_DATE, title ) select event0_.EVENT_ID as col_0_0_, event0_.EVENT_DATE as col_1_0_, event0_.title as col_2_0_ from EVENTS event0_ where (event0_.title like 'BUY%') and (exists (select 1 from PERSON_EVENT personeven1_ where personeven1_.EVENT_ID=EVENTS.EVENT_ID))
> 15:33:29,984 WARN JDBCExceptionReporter:71 - SQL Error: 904, SQLState: 42000
> 15:33:29,984 ERROR JDBCExceptionReporter:72 - ORA-00904: "EVENTS"."EVENT_ID": 无效的??符
> Is there any wrong with the hql,or it's alias?
> Thanks to anyone who pay attetion to this trivial question which I search the forum and google without solutions.
> Or if I missed them,I would be grateful that you might tell me where can I find the right answer to fix this hql grammar error.
--
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