Hibernate hql和会话管理
本周我学习了hibernate编程,如果我的方法正确,我就不是舒尔。我读了很多文章,每一篇hibernate文章看起来都有点不同。我使用的是Hibernate4,这是从数据库获取数据的正确方法吗?它目前正在工作,但如果这是最好的方式,我就不是舒尔:)我错过了什么吗?是否有更好/更干净的方法获取数据Hibernate hql和会话管理,hibernate,hql,sessionfactory,Hibernate,Hql,Sessionfactory,本周我学习了hibernate编程,如果我的方法正确,我就不是舒尔。我读了很多文章,每一篇hibernate文章看起来都有点不同。我使用的是Hibernate4,这是从数据库获取数据的正确方法吗?它目前正在工作,但如果这是最好的方式,我就不是舒尔:)我错过了什么吗?是否有更好/更干净的方法获取数据 @Autowired private SessionFactory sessionFactory; public List<UserFigures> getKeyFigure(i
@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;
}
@Autowired
私人会话工厂会话工厂;
公共列表getKeyFigure(int userId){
会话会话=getSessionFactoryDw().openSession();
字符串hql=“来自图形”+
“其中UserID=:UserID”;
Query=session.createQuery(hql);
setParameter(“userId”,userId);
List res=query.List();
session.close();
返回res;
}
代码的主要问题是不遵守Java命名约定、缺少事务以及会话处理代码不好
考虑到您使用@Autowired,我猜您使用的是Spring。因此,您应该使用Spring会话和事务管理将上下文会话(即使用sessionFactory.getCurrentSession()
而不是sessionFactory.openSession()
)绑定到当前Spring声明性事务
Spring文档有一个完整的框架。读一下
另外,
Figure
应该命名为Figure
您的代码的主要问题是不遵守Java命名约定、缺少事务和糟糕的会话处理代码
考虑到您使用@Autowired,我猜您使用的是Spring。因此,您应该使用Spring会话和事务管理将上下文会话(即使用sessionFactory.getCurrentSession()
而不是sessionFactory.openSession()
)绑定到当前Spring声明性事务
Spring文档有一个完整的框架。读一下
此外,图形
应命名为图形