から取得しようとしてbookTitle
いauthor
ますBook
。
String hqlSelectBook = "select bookTitle,author from Book where bookID = " + bookIdList.get(size-1);
List<Object[]> tmp = sess.createQuery(hqlSelectBook).list();
各フィールドを印刷するにはどうすればよいですか?
次のコードを使用して印刷します。
List<Object[]> results = sess.createQuery(hqlSelectBook).list();
for (Object[] result : results) {
String bookTitle = (String) result[0];
String author = (String) result[1];
}
Query.list()のドキュメントから
クエリ結果をリストとして返します。クエリに行の前に複数の結果が含まれている場合、結果は Object[] のインスタンスで返されます。
だから私の推測では、上の各アイテムを反復処理することですlist
。それはあなたに行を与えるでしょう。次に、各要素でobject[0]
あなたbookTitle
をobject[1]
与え、 を与えますauthor
。したがって、それらをキャストしてstring
使用します。
コードは次のようになります
for (int i = 0; i< tmp.size();i++) {
System.out.prinln((String)(list.get(i)[0]));
System.out.prinln((String)(list.get(i)[1]));
}
NB ..ハイバーネットの経験はありません。この質問に基本から答えました。
for(Object[] i:temp){
System.out.println("book title"+(String)i[0]);
System.out.println("author"+(String)i[1]);
}