hibernate中的服务注册(StandardServiceRegistry)是否必要?

Krishnna 发布于 2016/12/05 18:07
阅读 1K+
收藏 0

各位大牛,这几天被一个问题难倒了。在使用hibernate时,操作数据库之前我们总是需要获得Session对象。各大教学视频都是这么教的,以下代码:

//创建配置对象
config = new Configuration().configure();
//创建服务注册对象
StandardServiceRegistry service1 = new StandardServiceRegistryBuilder()
            .applySettings(config.getProperties()).build(); 
//创建会话工厂对象
sessionFactory = config.buildSessionFactory(service1);
//创建会话
session = sessionFactory.openSession();
//创建事务
tx = session.beginTransaction();

问题就出在这里了。我发现我用了注册对象后,无法操作数据库。总是报错。

org.hibernate.UnknownEntityTypeException: Unable to locate persister: Demo2.Student
这里的Demo2.Student 是我的在Demo2包下的Student持久化类。

一开始我觉得是我的持久化类错了,或者是我的配置文件有错。然而。

当我不用StandardServiceRegistry时。

即:

//创建配置对象
config = new Configuration().configure(); 
//创建会话工厂对象
sessionFactory = config.buildSessionFactory();
//创建会话
session = sessionFactory.openSession();
//创建事务
tx = session.beginTransaction();

程序完成能运行。完全可以操作数据库,进行Crud操作。

所以我就跳出一个疑问了,StandardServiceRegistry的作用在哪里。如果有作用,那为什么加上去之后反而报错无法运行了。

请大神解惑。

加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部