2012-06-01 21 views
10

enter image description hereमैं एचक्यूएल के साथ कैसे कर सकता हूं, कई लोगों के लिए?

यहां मेरी डेटाबेस संरचना है। कई लोगों के साथ संबंध। मैं उन लेखकों का चयन करना चाहता हूं जिन्होंने एक ही पुस्तक लिखी है। एसक्यूएल के साथ, मैंने किया। मैं एचक्यूएल के साथ कैसे करूं?

Query query = session.createSQLQuery("SELECT FirstName, LastName FROM authors, books, author_book as ab WHERE ab.authorID=authors.authorID AND ab.bookID = books.bookID AND ab.bookID = :id"); 
    query.setInteger("id", 1); 
    List list = query.list(); 
    Iterator<Object[]> iter = list.iterator(); 
    while (iter.hasNext()) { 
     Object[] obj = iter.next(); 
     System.out.println(obj[0] + " " + obj[1]); 
    } 

उत्तर

17

इकाई नाम मान लिया जाये कि पुस्तक और लेखक हैं और लेखकों बुक है कि विशेषता:

select a.firstName, a.lastName from Book b join b.authors a where b.id = :id 
+0

स्टीव एबरसोल - बहुत बहुत धन्यवाद !!! –

0

हमें संस्थाओं लेखक, किताबें और AuthorBook लेते हैं।

क्या आप निम्न क्वेरी का प्रयास कर सकते हैं।

String hql = "select a.firstName, a.lastName from Authors a, Books b, AuthorBook ab where ab.authorId=a.authorId and ab.bookId=b.bookId and ab.bookId=:id"; 

List<Object[]> resultList = session.createQuery(hql).setInteger("id", 1).list(); 

for(Object[] result : resultList) 
{ 

     System.out.println("First Name : " + result[0]); 
     System.out.println("Last Name : " + result[1]); 
} 
संबंधित मुद्दे