SQL "столбец определен неоднозначно" - при запуске из спящего режима - PullRequest
3 голосов
/ 27 января 2011

Когда я запускаю SQL-запрос из sqldeveloper, он работает нормально. Когда я выполняю тот же запрос из сеанса Hibernate SQL, он выдает: «ORA-00918: столбец неоднозначно определен», ошибка.
Умирает ли Hibernate генерировать какие-либо журналы 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

Ответы [ 2 ]

2 голосов
/ 27 января 2011

Вы выбираете main_contact.cont_role_desc дважды.Кроме того, у вас есть два столбца с именем «cont_name» и два столбца с именем «cont_id», что также может не сделать его счастливым.Если удаление лишнего cont_name не работает, может быть, попробуйте наложить их?в наборе результатов будет сбивать с толку Hibernate - как он будет отличать их друг от друга?

0 голосов
/ 27 января 2011

в hibernate.cfg.xml для записи в него операторов SQL

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