0

ライブラリとブックという2つのテーブルがあります

  • ライブラリ -> ふた、lname、laddress、およびセットブック (ふたは主キー)
  • Books->bid,bname,bauthor(入札は主キー)

すなわち: library--one to many-->Book author(bauthor) ="xyz" の書籍を含む List of Library を取得するのが難しいと感じています。

私はこのクエリを試しました:

query=session.createQuery("from Library as l where l.books.bauthor="xyz");

しかし、エラーが発生しました:休止状態のクエリリストでコレクションを逆参照しようとする不正な試み

このクエリを使用したとき:

query=session.createQuery("from Library as l inner join l.books b where b.bauthor="xyz");
List<Library>list=query.list();

私は正しい番号を得ています。の本ですが、取り出そうとしたとき(Library l=list.get(0);or Library l=(Library)list.get(0))

エラーが発生しています: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.demo.Library

4

1 に答える 1

0

Library と Book type リストを取得しているため、1 つのタイプ レコードのみを取得できます

Query query = session.createSQLQuery(sql);
            records = query.list();
            for (Object[] fields : records) {
                Library view = new Library();
                view.setId(StringUtils.toString(fields[1]));
                view.setLName(StringUtils.toString(fields[0]));
                list.add(view);
            }
于 2012-08-25T09:26:53.677 に答える