Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate hql和会话管理_Hibernate_Hql_Sessionfactory - Fatal编程技术网

Hibernate hql和会话管理

Hibernate hql和会话管理,hibernate,hql,sessionfactory,Hibernate,Hql,Sessionfactory,本周我学习了hibernate编程,如果我的方法正确,我就不是舒尔。我读了很多文章,每一篇hibernate文章看起来都有点不同。我使用的是Hibernate4,这是从数据库获取数据的正确方法吗?它目前正在工作,但如果这是最好的方式,我就不是舒尔:)我错过了什么吗?是否有更好/更干净的方法获取数据 @Autowired private SessionFactory sessionFactory; public List<UserFigures> getKeyFigure(i

本周我学习了hibernate编程,如果我的方法正确,我就不是舒尔。我读了很多文章,每一篇hibernate文章看起来都有点不同。我使用的是Hibernate4,这是从数据库获取数据的正确方法吗?它目前正在工作,但如果这是最好的方式,我就不是舒尔:)我错过了什么吗?是否有更好/更干净的方法获取数据

    @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文档有一个完整的框架。读一下

此外,
图形
应命名为
图形