您的位置:首页 > 移动开发

在版本问题上解决 org.hibernate.MappingException: Unknown entit xxx

2017-02-09 22:33 543 查看
问题出在V4和V5中构建 SessionFactory的实例方式不同

Hibernate4的版本

Configuration conf = new Configuration().configure();

//服务注册,这是使用创建者模式,根据配置文件中的配置字段来构建注册服务(这应该是hibernate架构中注册服务的通用流程)。

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().

applySettings(conf.getProperties()).build();

//使用实例化好了的注册服务,使用Configuration中的工厂模式实例化了SessionFactory

SessionFactory sf = conf.buildSessionFactory(serviceRegistry);

 Hibernate5的版本

//和V4版本比,V5版本看不到configure对象了。直接使用创建者模式构建出了标准服务注册对象

StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().configure().build();

//这个对象metadata对象应该扮演了一个万金油的角色,使用以上的注册对象作为入参构建这个对象

Metadata metadata = new MetadataSources(standardRegistry).getMetadataBuilder()

.applyImplicitNamingStrategy(ImplicitNamingStrategyComponentPathImpl.INSTANCE).build();

//最后由这个metadata使用构建出sessionFactory

SessionFactory sessionFactory = metadata.getSessionFactoryBuilder().build();

就这样就行了

编程嘛总是要往发展的方向看的!

在LOL中有句话说的很好:想要上分英雄,跟着版本走就对了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐