org.hibernate.MappingException: Unknown entity

Hibernate报错 org.hibernate.MappingException: Unknown entity

本小白本次实验课,由于初学Hibernate,测试两种map方式时(xml文件解析和anotation注解),在使用anotation注解测试时,一直报错:org.hibernate.MappingException: Unknown entity。
第一反应:是不是注解写错了,然后又检查了一遍,giao,明明没写错,遂求助于博客上的大佬们。

真正原因:版本问题

1//Hibernate4.X版本的写法

        //生成一个注册机对象
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();

       //使用注册机机对象serviceRegistry创建sessionFactory
sessionFactory = configuration.buildSessionFactory(serviceRegistry);2//Hibernate5.X版本的写法
//生成一个注册机对象
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
//使用注册机机对象serviceRegistry创建sessionFactory
sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();




```java
// Hibernate4版本的SessionFactory实例构建的步骤是这样的(也是很多学习资料的通用范本):
//Configuration就是代表着hibernate的那个xml配置文件对象,如果configure方法中没有参数的话,默认是就是hibernate.cfg.xml。
Configuration conf = new Configuration().configure(); 
//选择Hibernate.cfg.xml 
Configuration conf = new Configuration().configure(/Hibernate.cfg.xml”);
//服务注册,这是使用创建者模式,根据配置文件中的配置字段来构建注册服务(这应该是hibernate架构中注册服务的通用流程)。
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(). 
applySettings(conf.getProperties()).build();
//使用实例化好了的注册服务,使用Configuration中的工厂模式实例化了SessionFactory 
SessionFactory sf = conf.buildSessionFactory(serviceRegistry);

//如果你用的是Hibernate4的版本,这样做完全OK的,运行的时候不会报MappingException。
//但是如果你使用Hibernate5的版本,就会报错。那么Hibernate5应该怎样构建SessionFactory呢,如下: 
//和V4版本比,V5版本看不到configure对象了。直接使用创建者模式构建出了标准服务注册对象 
//1. 配置类型安全的准服务注册类,这是当前应用的单例对象,不作修改,所以声明为final 
//在configure(“cfg/hibernate.cfg.xml”)方法中,如果不指定资源路径,默认在类路径下寻找名为hibernate.cfg.xml的文件 
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure(“cfg/hibernate.cfg.xml”).build();

//2. 根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂 
SessionFactory sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();

原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值