org.hibernate.MappingException:Unknown entity XXX 的异常(XXX 是 Hibernate 实体类的类名)
原因
获取 SessionFactory 的方式错了, 不同版本获取 SessionFactory 的方式不相同
SessionFactory 的获取方式总结
以下三种获取方式应该可以应付 Hibernate 5.4.28 之前的所有版本
// 1. 创建 SessionFactory 对象
SessionFactory sessionFactory = null;
// 1-1 创建 Configuration 对象, 这个对象用于对应 Hibernate 的基本信息和对象关系映射信息, 默认情况下 configure() 方法使用的是资源目录中的 hibernate.cfg.xml 文件
Configuration conf = new Configuration().configure();
// 1-2 创建一个 ServiceRegistry 对象, Hibernate 的任何配置和服务都需要在该对象中注册后才能生效
// 方式一
sessionFactory = conf.buildSessionFactory();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build();
// 方式二
sessionFactory = conf.buildSessionFactory(serviceRegistry);
// 方式三
sessionFactory= new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
// 2. 创建 Session 对象
Session session = sessionFactory.openSession();