Я обновил свою идею с 2017.1
до 2018.1
, и у меня возникла проблема с Hibernate, которую я не могу решить ... Я искал и, похоже, с этим много проблем, но не смог понять, в чем заключается решение.
Итак, я использую hibernate.version 5.2.2.Final
, spring.version 4.0.6.RELEASE
, мой hibernate.cfg.xml
находится в папке src\main\resources
и в моем HibernateUtils у меня было что-то вроде этого:
public class HibernateUtils {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the ServiceRegistry from hibernate.cfg.xml
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.configure("hibernate.cfg.xml").build();
// Create a metadata sources using the specified service registry.
Metadata metadata = new MetadataSources(serviceRegistry).getMetadataBuilder().build();
return metadata.getSessionFactoryBuilder().build();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
}
}
И это работало, пока я не обновил свою IDEA. Теперь у меня есть
Caused by: java.lang.ExceptionInInitializerError
at org.mgo.HibernateUtils.buildSessionFactory(HibernateUtils.java:34)
at org.mgo.HibernateUtils.getSessionFactory(HibernateUtils.java:11)
Caused by: org.hibernate.internal.util.config.ConfigurationException: Could not locate cfg.xml resource [/main/resources/hibernate.cfg.xml]
Я перепробовал все, что нашел с этой ошибкой, чтобы поместить hibernate.cfg.xml
непосредственно в папку sr c, указать путь к файлу xml, например "/resources/hibernate.cfg.xml"
или "/main/resources/hibernate.cfg.xml"
, или оставить его пустым, как это .configure()
, но, похоже, ничего не работает.
Я нашел здесь: https://github.com/spring-projects/spring-framework/issues/21340 то, с чем он не работает Spring 4.3.17.RELEASE + Hibernate 5.2.17.Final
и работает с Spring 5.0.6.RELEASE + Hibernate 5.1.14.Final
, но если я меняю таким образом, я получаю много других ошибок и не понимаю, почему мой hibernate.5.2.2.Final + spring.4.0.6.RELEASE больше не работает из-за моя идея. Поскольку я использую Maven, я пытался скомпилировать вне Idea, но столкнулся с той же ошибкой ...