2012-05-19 16 views
15

मैं दो तालिकाओं Item और Nikasa है है - जिसका परिभाषाओं लगता है:हाइबरनेट - NonUniqueDiscoveredSqlAliasException जब दो तालिका एक ही स्तंभ नाम

Item { id, name, spec} और Nikasa {id, date, item_id}. यहाँ ITEM_ID Item.id. का प्रतिनिधित्व करता है

मैं एक साधारण देशी एसक्यूएल केवल Item.id और Nikasa.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(); 

लेकिन मैं लाइन List result=sq.list(); पर अपवाद NonUniqueDiscoveredSqlAliasException : Encountered a duplicated sql alias [ID] during auto-discovery of a native-sql query हो रही है:

ढेर ट्रेस: ​​

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

ऐसा लगता है कि मैंने इसे हल किया। 'इसे चुनें। 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

हाय, मुझे हाइबरनेट 3 में अपवाद मिल रहा है। आपने किस संस्करण का परीक्षण किया है? क्या आप पुष्टि कर सकते हैं। धन्यवाद, कथिर – Kathir

संबंधित मुद्दे