前言:在使用Hibernate5.4.1 的过程中, 获取SessionFactory的过程中,报错信息
一、代码
Configuration cfg=new Configuration().configure();
ServiceRegistry registry=new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties())
.build();
//方式一 :报错
SessionFactory factory=cfg.buildSessionFactory(registry);
//方式二:正常
SessionFactory factory1=cfg.buildSessionFactory();
Session session=factory.openSession();
Site site=session.get(Site.class, 1);
System.out.println(site);
session.close();
factory.close();
二、运行信息
方式一: SessionFactory factory=cfg.buildSessionFactory(registry);
报错信息:org.hibernate.UnknownEntityTypeException: Unable to locate persister: com.jmms.pojo.Site
方式二:SessionFactory factory1=cfg.buildSessionFactory();
运行正常:
三、代码分析
1. 进入Configuration类的源码中的以下方法,发现有两个地方的方法过时
2. 进入到AttributeConverterDefinition类中
下图截取自:https://www.cnblogs.com/ArtofDesign/p/7831904.html,更多详情也可以点进去看看
总结:大伙儿用这个吧:
Configuration cfg=new Configuration().configure();
SessionFactory factory1=cfg.buildSessionFactory();
Session session=factory.openSession();
Site site=session.get(Site.class, 1);
System.out.println(site);
session.close();
factory.close();