2016-07-28 2 views
2

У меня есть новый проект загрузки весны. Я использую gradle как менеджер сборки и Eclpice IDE. Я хочу использовать спящий режим и попытаться получить конфигурации из файла hibernate.cfg.xml, но получитьorg.hibernate.HibernateException: /hibernate.cfg.xml не найден из ресурсов

org.hibernate.HibernateException: не /hibernate.cfg.xml найдено

Я хранить этот файл в папке ресурсов, также я попытался поместить его в папку META-INF.

Структура папок:

enter image description here

HibernateUtil.java:

public class HibernateUtil { 

private static SessionFactory sessionFactory = buildSessionFactory(); 


private static SessionFactory buildSessionFactory() 
    { 
     try 
     { 
     if (sessionFactory == null) 
     { 
      sessionFactory = new Configuration().configure().buildSessionFactory(); 
     } 
     return sessionFactory; 
     } 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(); 
} 

}

+1

Вам не нужно настраивать спящий режим, весенняя загрузка делает это за вас, пожалуйста, посмотрите на весенний документ JPA https://spring.io/guides/gs/accessing-data-jpa/ – Saravana

+0

I второй @ Саравана, единственная конфигурация, которую вы должны трогать, будет добавлять зависимость в пом. Прошли те времена, когда вы настраивали файлы config.xml. Пусть Spring справится с этим для вас :-) – Arty

+0

Если я правильно понимаю, Spring Data JPA является альтернативой для спящего режима, да? –

ответ

0

Если вы хотите, чтобы читать файлы в каталоге ресурсов, необходимо использовать classloder для получения файла.

В статическом методе

HibernateUtil.class.getClassLoader().getResource("hibernate.cfg.xml").getFile(); 

не статический метод

getClass().getClassLoader().getResource("hibernate.cfg.xml").getFile(); 

и если ресурс находится в одном из подкаталогов в resources, префикс путь к папке при получении ресурса,

Пример получения ресурса в каталоге META-INF

getResource("META-INF/hibernate.cfg.xml"); 

Но ботинки весны авто конфигурирует, просто путь добавления зависимостей в pom.xml и предоставлении связанных с JPA свойств в application.properties

0

, если ваше приложение веб-службе, вы должны поставить hibernate.cfg.xml в WEB-INF floder.if ваше приложение является клиентским сервисом, вы должны поместить свой hibernate.cfg.xml в пакет src.

Смежные вопросы