2014-01-05 13 views
0
Query query = session.createQuery("select s.studentId as ROLL_ID, " + 
               "s.studentFirstName as STUDENT_NAME, " + 
               "s.studentDOB as DOB, " + 
               "su.subjectName as COURSE, " + 
               "e.mark as MARK " + 
               "from Enrolment e, Students s, Subjects su " + 
               "where s.studentId = e.studentId " + 
               "and e.subjectId = su.subjectId"); 

數據的列表,這是什麼,我從數據庫中獲取,但它返回一個對象如何從這些對象檢索數據的列表..休眠加入查詢返回一個對象,我應該如何檢索對象

回答

1
List<Object[]> rows = query.list(); 
for (Object[] row : rows) { 
    Long studentId = (Long) row[0]; 
    String firstName = (String) row[1]; 
    ... 
} 

請注意,您可能錯過了Hibernate文檔的很大一部分內容:實體之間應該有聯繫,而不是通過與他們給出查詢的ID相鏈接。例如,學生應該有一個(OneToMany)註冊集合,註冊應該有(ManyToOne)類型的課程類型。 Enrollment應該沒有studentId字段和subjectId字段。

+0

謝謝** JB Nizet **其工作正常。我是休眠的新手,可能錯過了你建議的部分。你能詳細解釋一下嗎?如果你有鏈接到你可以共享的任何文檔。 – nikhilgupta86