2012-05-19 2 views
15

У меня есть две таблицы Item и Nikasa - чьи определения выглядит следующим образом:Hibernate - NonUniqueDiscoveredSqlAliasException, когда две таблицы имеет одинаковые имена столбцов

Item { id, name, spec} и Nikasa {id, date, item_id}. Здесь item_id представляет Item.id.

Я сделал простой родной SQL присоединиться, чтобы выбрать только и Nikasa.id item-id как:

Session s = getSession(); 
    SQLQuery sq = s.createSQLQuery("SELECT it.id, nik.id FROM item it LEFT JOIN nikasa nik ON (it.id = nik.item_id)"); 
    List result = sq.list(); 

Но я получаю исключение NonUniqueDiscoveredSqlAliasException : Encountered a duplicated sql alias [ID] during auto-discovery of a native-sql query в строке List result=sq.list();:

Стек-след:

org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [ID] during auto-discovery of a native-sql query 
    at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:594) 
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1986) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:829) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289) 
    at org.hibernate.loader.Loader.doList(Loader.java:2463) 
    at org.hibernate.loader.Loader.doList(Loader.java:2449) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2279) 
    at org.hibernate.loader.Loader.list(Loader.java:2274) 
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:331) 
    at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1585) 
    at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:224) 
    at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:156) 

Не могли бы вы предложить что-то не так?

+0

Похоже, я решил. 'SELECT it.id как iid, nik.id как nid' сделал тайну. – gtiwari333

ответ

32

Вам нужно установить псевдоним результата.

SELECT it.id as itemid, nik.id as nikasaid FROM item it LEFT JOIN nikasa nik ON (it.id = nik.item_id) 
+0

Привет, я получаю исключение в Hibernate 3. Какую версию вы протестировали? не могли бы вы подтвердить. Спасибо, Катир – Kathir

Смежные вопросы