【发布时间】:2018-02-18 19:50:08
【问题描述】:
当我从数据库中获取所有列表 ob 书籍时,一切正常。我在 DAO 类中使用方法“public List listBooks()”。但是当我尝试通过某些参数过滤书籍时抛出其他方法: "public List listBooksFiltered(String title, String author)" ,我得到了异常。
你有books.jsp文件的一部分:
你有一部分@Controller
@RequestMapping(value = "books", method = RequestMethod.GET)
public String listBooks (Model model) {
model.addAttribute("book", new Book());
model.addAttribute("listBooks", this.bookService.listBooks());
return "books";
}
@RequestMapping(value = "/books/filtering", method = RequestMethod.POST)
public String listBooksFiltered (@RequestParam("title") String title, @RequestParam("author") String author, Model model) {
model.addAttribute("book", new Book());
model.addAttribute("listBooks", this.bookService.listBooksFiltered(title, author));
return "books";
}
你有 BookDaoImpl.class 的一部分:
@Override
@SuppressWarnings("unchecked")
public List<Book> listBooks() {
Session session = this.sessionFactory.getCurrentSession();
List<Book> bookList = session.createQuery("from Book").list(); // special query for loading all objects Book.class
for(Book book: bookList) {
logger.info("Book list: " + book);
}
return bookList;
}
@Override
@SuppressWarnings("unchecked")
public List<Book> listBooksFiltered(String title, String author) {
Session session = this.sessionFactory.getCurrentSession();
Query query = session.createQuery("from Book where bookTitle = :paramTitle");
query.setParameter("paramTitle", title);
List<Book> bookList = query.list();
for(Book book: bookList) {
logger.info("Book list: " + book);
}
return bookList;
}
【问题讨论】:
-
你得到什么异常?
-
消息请求处理失败;嵌套异常是 org.hibernate.HibernateException: No Session found for current thread
-
根本原因 org.hibernate.HibernateException:没有为当前线程找到会话 org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:106) org.hibernate.internal.SessionFactoryImpl.getCurrentSession( SessionFactoryImpl.java:1014) com.springapp.mvc.dao.BookDaoImpl.listBooksFiltered(BookDaoImpl.java:85)
标签: java model-view-controller controller