2011-01-27 116 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>