Рубрики
Без рубрики

Как загрузить hibernate.cfg.xml из другого каталога

– Как загрузить hibernate.cfg.xml из другого каталога

XML-файл конфигурации гибернации ” hibernate.cfg.xml “всегда помещается в корневой каталог вашего проекта, вне любого пакета. Если вы поместите этот файл конфигурации в другой каталог, вы можете столкнуться со следующей ошибкой:

Initial SessionFactory creation failed.org.hibernate.HibernateException: 
/hibernate.cfg.xml not found

Exception in thread "main" java.lang.ExceptionInInitializerError
	at com.mkyong.persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:25)
	at com.mkyong.persistence.HibernateUtil.(HibernateUtil.java:8)
	at com.mkyong.common.App.main(App.java:11)
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found
	at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
	at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1405)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1427)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
	at com.mkyong.persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
	... 2 more

Чтобы попросить Спящий режим поискать ваш ” hibernate.cfg.xml “файл в другом каталоге, вы можете изменить класс SessionFactory гибернации по умолчанию, передав свой” hibernate.cfg.xml “путь к файлу в качестве аргумента в методе configure() :

            SessionFactory sessionFactory = new Configuration()
            .configure("/com/mkyong/persistence/hibernate.cfg.xml")
            .buildSessionFactory();
            
            return sessionFactory;

Чтобы попросить Спящий режим поискать ваш “|| hibernate.cfg.xml || “файл в другом каталоге, вы можете изменить класс ||SessionFactory || гибернации по умолчанию, передав свой”|| hibernate.cfg.xml || “путь к файлу в качестве аргумента в методе ||configure()||:

Полный пример в HibernateUtil.java , чтобы загрузить ” hibernate.cfg.xml “из каталога ” /com/mkyong/настойчивость/ “.

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

	private static final SessionFactory sessionFactory = buildSessionFactory();

	private static SessionFactory buildSessionFactory() {
		try {
			// load from different directory
			SessionFactory sessionFactory = new Configuration().configure(
					"/com/mkyong/persistence/hibernate.cfg.xml")
					.buildSessionFactory();

			return sessionFactory;

		} catch (Throwable ex) {
			// Make sure you log the exception, as it might be swallowed
			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();
	}

}

Сделано.

Оригинал: “https://mkyong.com/hibernate/how-to-load-hibernate-cfg-xml-from-different-directory/”