org.hibernate.MappingException: Unknown entity: com.lzw.hibernate.helloworld.News
当出现这种问题时候首先要检查两个地方:
1 、 如果使用了 Entities 注解 ,要注意导入的包,不是hibernate 的包,而是java的
2 、 检查 *.cfg.xml 和 *.hbm.xml 配置文件 书写是否正确 ,映射格式是否真确,ps: 检查正确与否 可以: 按着Ctrl 把鼠标移动到相应位置,如果出现下划线并且能够点击进去,说明映射文件配置正确。
如果上述,不能解决问题,那么就要注意hibernate架包的使用版本 :
//hibernate5 以后就要这样些代码了
//创建服务注册对象
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
//创建会话工厂对象
SessionFactory sessionFactory =
new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
// 2. 创建一个 session 对象
Session session = sessionFactory.openSession();
// 3. 开启事务
Transaction transaction = session.beginTransaction();
// 4. 执行保存操作
News news = new News("Java","lzw",new Date(new java.util.Date().getTime()));
session.save(news);
//
// News news2 = session.get(News.class
, 1);
// System.out.println(news2);
// 5. 提交事务
transaction.commit();
// 6 . 关闭session
session.close();
// 7. 关闭sessionFactory 对象
sessionFactory.close();
在hibernate 4.5以后,创建sessionFactory的时候就要用上述的方法来创建。
希望对大家有用!