[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-1657) hql update generate wrong sql with joined subclass hierarcy

Sebastian Anzani (JIRA) noreply at atlassian.com
Wed Apr 22 06:47:20 EDT 2009


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=32977#action_32977 ] 

Sebastian Anzani commented on HHH-1657:
---------------------------------------

Hello, i have found the same problem trying to delete a hierarchy having a composite primary key,  the HQL statement that I am trying to execute is the following

delete from  Employee _emp where concat(_emp.lastName,'_$$_',_emp.firstName)  in(:values)

in my case case "Employee" extends "Person" and the SQL query generated to fill the temporary table used for bulk delete is the following:

insert  into
        HT_employee
        select
            employee0_.`LASTNAME` as `LASTNAME`,
            employee0_.`FIRSTNAME` as `FIRSTNAME` 
        from
            `employee` employee0_ 
        inner join
            `person` employee0_1_ 
                on employee0_.`LASTNAME`=employee0_1_.`LASTNAME` 
                and employee0_.`FIRSTNAME`=employee0_1_.`FIRSTNAME` 
        where
            concat(`LASTNAME`, '_$$_', `FIRSTNAME`) in (
                ?
            )

Obviously the problem is caused by the missing of the correct entity alias into the concat function of the where clause. 




> hql update generate wrong sql with joined subclass hierarcy
> -----------------------------------------------------------
>
>                 Key: HHH-1657
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1657
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: query-hql
>         Environment: Hibernate 3.2.0cr1, Hibernate 3.1.3
>            Reporter: Alexey Romanchuk
>            Assignee: Gail Badner
>
> Let suppose that we have two joined subclass entities: Parent (id PK) and Child (id PK) that mapped with joined subclass method.
> When I try to update Child by id with hql:
> update Child c set c.field = 'value' where c.id = 1234
> hibernate generates joined tables like 
> insert into HT_parent select child0_.id as id from child child0_ inner join parent child0_1_ on child0_.id=child0_1_.id  wher id in = 1234
> look at last condition. hibernate use id WITH OUT tables alias that cause sql exception: column reference "id" is ambiguous

-- 
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