Hibernate 初始化:获取SessionFactory的各种方式
来源:互联网 发布:淘宝收购饿了么 编辑:程序博客网 时间:2024/06/10 16:32
其实网络上已经存在很多关于Hibernate初始化的文章了。但是,随着Hibernate版本不断升级,有些初始化的方式已经悄悄的变成了坑。
今天就遇到了下面的坑(基于Hibernate 5.2.10):
Configuration cfg = new Configuration().configure("hibernate/hibernate.cfg.xml");ServiceRegistry sr= new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();SessionFactory sf = cfg.buildSessionFactory(sr);
通过这种方式,在Session保存对象时会发生类似下面这种错误:
org.hibernate.MappingException: Unknown entity: test.hibernate.StudentModel
首先声明,我的配置是没问题的,在hibernate.cfg.xml也引入了StudentModel的Mapping文件。
遇到这个问题后,我首先想到的是要找到错误发生的根源。
然后我就开始分析Hibernate源码,但是,根据问题发生的地方往上追溯了半天也没找到根本原因。于是就想看看网上有没有发生过类似问题的。
在网络上搜索,关键词很重要。
如果直接搜索: 【org.hibernate.MappingException: Unknown entity:】的话,出现的解决办法都是告诉你要正确配置文件或正确引入类。很显然这解决不了我的问题。
如果搜索:【Hibernate 5 mapping找不到】的话,正确的解决办法就出现了。其实就是按照Hibernate官网介绍的方式进行初始化。
下面整理了Hibernate官网介绍的针对各个版本的初始化方式,不过没有找到类似上面提到的那个坑的方式,不知道谁发明的。
注:其实在Hibernate 5.xxx里使用以前的初始化方式还是可以的,这说明Hibernate做了很好的向后兼容。
Hibernate 4.2/4.3
参考:http://docs.jboss.org/hibernate/orm/4.3/quickstart/en-US/html_single/
protected void setUp() throws Exception { // A SessionFactory is set up once for an application sessionFactory = new Configuration() .configure() // configures settings from hibernate.cfg.xml .buildSessionFactory();}
Hibernate 5.0/5.1/5.2
参考:http://docs.jboss.org/hibernate/orm/5.2/quickstart/html_single/
protected void setUp() throws Exception {// A SessionFactory is set up once for an application!final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure() // configures settings from hibernate.cfg.xml.build();try {sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();}catch (Exception e) {// The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory// so destroy it manually.StandardServiceRegistryBuilder.destroy( registry );}}
阅读全文
1 0
- Hibernate 初始化:获取SessionFactory的各种方式
- hibernate不同版本获取sessionfactory的方式
- Hibernate 5.2.x 中 sessionFactory 的获取方式
- Hibernate SessionFactory 的创建方式
- hibernate SessionFactory的获取方法
- hibernate 获取SessionFactory的方法
- Hibernate4 获取SessionFactory 的方式
- Hibernate4 获取SessionFactory 的方式
- Hibernate 4.3.6 构建SessionFactory的方式
- Hibernate-4.3.6 创建sessionFactory的方式
- hibernate创建sessionFactory的不同方式
- hibernate 获取 SessionFactory 的工具类
- 获取SessionFactory对象的三种方式
- Hibernate4 获取SessionFactory 的2种方式
- hibernate 3.x 与 4.x 获取sessionFactory 方式
- 通过Struts Plugin完成Hibernate的SessionFactory初始化
- spring加载hibernate里的sessionfactory的三种方式
- hibernate获取sessionFactory工具类
- [k8s]args指令案例-彻底理解docker entrypoint
- dfs学习之打家劫舍(3)
- java web中监听本地磁盘文件,并进行上传,复制,处理等
- java中的基本数据类型
- 余弦相似度与正规化的欧氏距离的某种等价性
- Hibernate 初始化:获取SessionFactory的各种方式
- 20171012 SQL语句JOIN关键字
- 自定义圆角ImageView
- 从头编写 asp.net core 2.0 web api 基础框架 (3)
- babyheap 2017漏洞分析
- tf.random_uniform的使用
- git --- If no other git process is currently running, this probably means a git process crashed in
- Kylin 之对大数据量的多维分析
- iPhone X App 页面适配