@Autowired
private SessionFactory sessionFactory;
public List<UserFigures> getKeyFigure(int userId) {
Session session = getSessionFactoryDw().openSession();
String hql = "from Figures " +
"where UserID = :userId ";
Query query = session.createQuery(hql);
query.setParameter("userId", userId);
List<UserFigures> res = query.list();
session.close();
return res;
}
答案 0 :(得分:2)
您的代码的主要问题是不遵守Java命名约定,缺少事务以及糟糕的会话处理代码。
考虑到你对@Autowired的使用,我想你正在使用Spring。因此,您应该使用Spring会话和事务管理来创建与当前Spring声明性事务绑定的上下文会话(即使用sessionFactory.getCurrentSession()
而不是sessionFactory.openSession()
)。
Spring文档有一个完整的chapter dedicated to Hibernate。阅读它。
此外,Figures
应命名为Figure
。