0

本周我学会了编写休眠程序,如果我的方法是正确的,我不知道。我阅读了很多文章,每一篇 hibernate 文章看起来都有些不同。我正在使用 Hibernate 4,这是从我的数据库中获取数据的正确方法吗?它目前正在工作,但如果这是最好的方法,我不知道 :) 我错过了什么吗?是否有更好/更清洁的方法来获取数据?

    @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;
}
4

1 回答 1

3

您的代码的主要问题是不遵守 Java 命名约定、缺少事务以及糟糕的会话处理代码。

鉴于您对@Autowired 的使用,我猜您正在使用 Spring。因此,您应该使用 Spring 会话和事务管理来拥有与当前 Spring 声明性事务相关联的上下文会话(即使用sessionFactory.getCurrentSession()而不是)。sessionFactory.openSession()

Spring 文档有一整章专门介绍 Hibernate。阅读。

另外,Figures应该命名为Figure.

于 2013-01-27T13:05:42.107 回答