今天新建了一个Maven项目,引入Hibernate 5.6.0 , 连接MySql数据库,建立User数据表。在main中写一个获取User列表的函数。
奇怪的问题发生了,提示错误:
List<User> users = session.createSQLQuery("select * from user")
.addEntity(User.class)
.list();
Hibernate报错 org.hibernate.MappingException: Unknown entity:
修改代码为:
String sql = "From User";
List<User> users = session.createQuery(sql, User.class).list();
Unknown entity: com.sample.po.User
反复检查Hibernate.cfg.xml User.hbm.xml User.java 代码,都没有问题。 反复测试,百度查询,耗费了1个多小时后,最终确认了问题。
答案:建立SessionFactory方法, Hibernate 4 与 Hibernate 5 是不一样的, 导致上面的错误。(细节!!! 在Hibernate4中,创建SessionFactory的 buildSessionFactory函数已经跟视频中不一样了,需要传入ServiceRegistry。Hibernate5的创建方式又变化了。)
具体参考:https://blog.csdn.net/alan_gaohaodong/article/details/79170056