2011-01-27 52 views
3

運行時,當我運行從的SQLDeveloper一個SQL查詢,它運行正常,當我運行從休眠SQL會話相同的查詢,它給了我:「ORA-00918:含糊不清的列」錯誤。
模具上冬眠產生的任何類型的可以用來調試錯誤的SQL日誌?SQL「列定義的含糊」 - 從休眠

編輯:這裏是SQL:(作品從罰款的SQLDeveloper)

SELECT main_contact.cont_name, 
    sub_contact.cont_name, 
    main_contact.cont_role_desc, 
    main_contact.cont_start_dte, 
    main_contact.cont_end_dte, 
    main_contact.cont_id, 
    sub_contact.cont_id, 
    main_contact.lookup_desc, 
    main_contact.cont_role_desc 
FROM 
    (SELECT cont_rlat.cont_rlat_id , 
    cont_role.cont_role_desc , 
    cont.cont_name , 
    cont.cont_ty_cde , 
    cont.cont_sid , 
    cont.cont_id , 
    cont_rlat.rlat_from_dte , 
    cont.cont_start_dte , 
    cont.cont_end_dte , 
    cont_rlat.app_id , 
    lookup_data_mgmt.lookup_desc 
    FROM cont_rlat join 
    cont on cont_rlat.cont_sid  = cont.cont_sid 
    join cont_role on cont_rlat.cont_role_id=cont_role.cont_role_id 
    join app on cont_rlat.app_id  = app.app_ID 
    join LOOKUP_DATA_MGMT on app.app_TY_CDE = LOOKUP_DATA_MGMT.LOOKUP_ID 
    where 
app.app_id  =:investmentProfileCId 
) main_contact left join 
    (SELECT cont.cont_id, 
    cont.cont_name, 
    cont_sub_rlat.cont_rlat_id 
    FROM cont_sub_rlat join 
    cont on 
    cont_sub_rlat.individual_cont_id = cont.cont_sid 
) sub_contact on 

main_contact.cont_rlat_id = sub_contact.cont_rlat_id 
+0

列中可能埋在堆棧跟蹤,請發表。以及表格的映射。 – hvgotcodes 2011-01-27 00:37:04

+0

謝謝..請參閱編輯。此外,列不在堆棧跟蹤中。我在那裏搜索。 – Victor 2011-01-27 16:52:09

回答

2

你選擇main_contact.cont_role_desc兩次。此外,你有兩列名爲「cont_name」兩列被稱爲「CONT_ID」,這也可能不讓它快樂。如果刪除額外的cont_name不起作用,也許嘗試別名那些?

SELECT main_contact.cont_name, 
    sub_contact.cont_name AS sub_cont_name, 
    main_contact.cont_role_desc, 
    main_contact.cont_start_dte, 
    main_contact.cont_end_dte, 
    main_contact.cont_id, 
    sub_contact.cont_id AS sub_cont_id, 
    main_contact.lookup_desc 

那些都將是一個的SQLDeveloper問題,但我想,在結果集中main_contact.cont_role_desc的最起碼有兩個精確副本會被混淆休眠 - 它將如何區分它們?

0

在hibernate.cfg.xml使其登錄SQL語句

<property name="hibernate.show_sql">true</property>