[hibernate-issues] [Hibernate-JIRA] Created: (HHH-3861) Wrong sql query with join table strategy

Vitaliy Morarian (JIRA) noreply at atlassian.com
Wed Apr 15 04:54:17 EDT 2009


Wrong sql query with join table strategy
----------------------------------------

                 Key: HHH-3861
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3861
             Project: Hibernate Core
          Issue Type: Bug
    Affects Versions: 3.3.1
            Reporter: Vitaliy Morarian


I have found that use of join table strategy results wrong query. Changing strategy to joined-subclass works ok.

produced SQL with join-table:
---
/* load one-to-many com.uwiss.hr.domain.Company.customers */ select customers0_.company_id as company11_3_, customers0_.person_id as person1_3_, customers0_.person_id as person1_16_2_, customers0_.version as version16_2_, customers0_.contact_phone as contact4_16_2_, customers0_.email as email16_2_, customers0_.memo as memo16_2_, customers0_.status as status16_2_, customers0_.first_name as first8_16_2_, customers0_.last_name as last9_16_2_, customers0_.lock as lock16_2_, customers0_1_.company_id as company2_17_2_, account1_.account_id as account1_0_0_, account1_.username as username0_0_, account1_.password as password0_0_, account1_.enabled as enabled0_0_, account1_.salt as salt0_0_, person2_.person_id as person1_16_1_, person2_.version as version16_1_, person2_.contact_phone as contact4_16_1_, person2_.email as email16_1_, person2_.memo as memo16_1_, person2_.status as status16_1_, person2_.first_name as first8_16_1_, person2_.last_name as last9_16_1_, person2_.lock as lock16_1_, person2_1_.company_id as company2_17_1_, person2_2_.birth as birth18_1_, person2_2_.phone_home as phone3_18_1_, person2_2_.phone_mobile as phone4_18_1_, person2_2_.ice_external as ice5_18_1_, person2_2_.ice_internal as ice6_18_1_, person2_2_.vacation_size_id as vacation7_18_1_, person2_.discriminator as discrimi2_16_1_ from person customers0_ inner join customer customers0_1_ on customers0_.person_id=customers0_1_.customer_id left outer join account account1_ on customers0_.person_id=account1_.account_id left outer join person person2_ on account1_.account_id=person2_.person_id left outer join customer person2_1_ on person2_.person_id=person2_1_.customer_id left outer join employee person2_2_ on person2_.person_id=person2_2_.employee_id where customers0_.company_id=?

ERROR: column customers0_.company_id does not exist
---

Produced SQL with joined-subclass strategy:
/* load one-to-many com.uwiss.hr.domain.Company.customers */ select customers0_.company_id as company2_3_, customers0_.customer_id as customer1_3_, customers0_.customer_id as person1_16_2_, customers0_1_.version as version16_2_, customers0_1_.contact_phone as contact3_16_2_, customers0_1_.email as email16_2_, customers0_1_.memo as memo16_2_, customers0_1_.status as status16_2_, customers0_1_.first_name as first7_16_2_, customers0_1_.last_name as last8_16_2_, customers0_1_.lock as lock16_2_, customers0_.company_id as company2_17_2_, account1_.account_id as account1_0_0_, account1_.username as username0_0_, account1_.password as password0_0_, account1_.enabled as enabled0_0_, account1_.salt as salt0_0_, person2_.person_id as person1_16_1_, person2_.version as version16_1_, person2_.contact_phone as contact3_16_1_, person2_.email as email16_1_, person2_.memo as memo16_1_, person2_.status as status16_1_, person2_.first_name as first7_16_1_, person2_.last_name as last8_16_1_, person2_.lock as lock16_1_, person2_1_.company_id as company2_17_1_, person2_2_.birth as birth18_1_, person2_2_.phone_home as phone3_18_1_, person2_2_.phone_mobile as phone4_18_1_, person2_2_.ice_external as ice5_18_1_, person2_2_.ice_internal as ice6_18_1_, person2_2_.vacation_size_id as vacation7_18_1_, case when person2_1_.customer_id is not null then 1 when person2_2_.employee_id is not null then 2 when person2_.person_id is not null then 0 end as clazz_1_ from customer customers0_ inner join person customers0_1_ on customers0_.customer_id=customers0_1_.person_id left outer join account account1_ on customers0_.customer_id=account1_.account_id left outer join person person2_ on account1_.account_id=person2_.person_id left outer join customer person2_1_ on person2_.person_id=person2_1_.customer_id left outer join employee person2_2_ on person2_.person_id=person2_2_.employee_id where customers0_.company_id=?



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