hibernate5 MappingException:Unknown entity问题解决方案

遇到异常:MappingException:Unknown entity

我先在网上搜了一下,中文网站都提到有两种解决方式:

1.注解导错包了,正确的包是:import javax.persistence.Entity;

2.没在hibernate.cfg.xml内配置mapping->


但是我的问题都不是这两个,到国外的网站查了查,原来是版本问题,我用的是hibernate5.1.

源代码是:

Configuration conf = new Configuration().configure();
ServiceRegistry sr = new StandardServiceRegistryBuilder()
				.configure().build();

		SessionFactory sf = conf.buildSessionFactory(sr);

貌似从4.35后这样子使用ServiceRegistry就不能获取实体信息了,但是也有方法...

方法1,保留ServiceRegistry,但是在创建Configuration实例后,要加上

conf.addAnnotatedClass(你的实体类.class);
这样就可以读取到实体类了,而且配置文件里mapping那个也可以删掉.

但是!!!

这种方法不推荐使用,因为这等于把实体类用硬编码的方式放入了类中,如果要变动实体类名,还要再修改代码,所以这种方法不好


接下来介绍第二种方法:

这个甚至更简单,不需要ServiceRegistry了,不需要那么长的代码了,一行搞定:

SessionFactory sf = new Configuration().configure().buildSessionFactory();

这样就直接获取了SessionFactory并且前面的异常也没有了!

OK!问题解决.


你可能感兴趣的:(hibernate5 MappingException:Unknown entity问题解决方案)