我有两个表,即Library和Book
即:图书馆 - 一对多 - >预订 我发现很难找到有图书的作者(bauthor)=“xyz”的图书馆名单。
我试过了这个问题:
query=session.createQuery("from Library as l where l.books.bauthor="xyz");
但是得到错误:非法尝试在hibernate查询列表中取消引用集合
当我使用此查询时:
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
。
答案 0 :(得分:0)
您正在获取图书馆和图书类型列表,因此您只能获得一种类型记录
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);
}