问题1:各个版本Hibernate基本包的不同,在这里就不详细写明了,因为网上都可以找到相关版本的基本包。
问题2:不同版本用Hibernate创建Session的方式有不同,这里就列出Hibernate4和Hibernate5两个版本的。
Hibernate4.x版本创建Session的代码:
Configuration configiguration = new Configuration().configure(); ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(configiguration.getProperties()); ServiceRegistry registry = builder.buildServiceRegistry(); factory = configiguration.buildSessionFactory(registry); session = factory.openSession(); transaction = session.beginTransaction();Hibernate5.x版本创建Session的代码:
Configuration configuration = new Configuration().configure(); configuration.addClass(Login.class); //创建服务注册对象 ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); //创建会话工厂对象 sessionFactory = configuration.buildSessionFactory(serviceRegistry); //会话对象 session = sessionFactory.openSession(); //开启事物 transaction = session.beginTransaction();
Exception in thread "main" org.hibernate.MappingException: Unknown entity: wen.Login
由于临时想到就提醒一下,发生找不到实体对象时错误时,除了网上所说的两个配置文件的问题以导错包的错误,还有一种便是Hibernate5.x版本中的创建Session代码处少了configuration.addClass(Login.class);这行代码。Login为实体类名。