/ / hibernate.cfg.xml- як її включити - java, hibernate

hibernate.cfg.xml- як його вбудувати - java, hibernate

Я "займаюсь курсами зі сну зими та основ СВ, і я не можу знайти форуми для обговорення чи щось подібне як частину курсу, тому тут запитую.

Інструктор змусив мене створити файл hibernate.cfg.xml і сказав мені змінити клас hibernateUtil.java. Ось як виглядає зараз клас

public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();


private static SessionFactory buildSessionFactory() {
try{
Configuration configuration = new Configuration();
return
configuration.buildSessionFactory
(new StandardServiceRegistryBuilder().
applySettings(configuration.getProperties()).
build());
}
catch (Exception e){
e.printStackTrace();
throw new RuntimeException("Service factory creation failed");
}
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}

Я не можу зрозуміти, де тут використовується hibernate.cfg.xml. Для перевірки цього використовується простий клас додатків Заявка на публічний клас {

    public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.close();
}

}

Насправді я навіть видалив hibernate.cfg.xml з джерела / main / властивості та повторно запустив це (Ctrl-F11 у затемненні), і я не бачив жодних проблем, тобто жодних помилок у консолі.

Отже, які зміни потрібно внести до класу HibernateUtil, щоб використовувати hibernate.cfg.xml?

Дякую.

Відповіді:

1 для відповіді № 1

Є якийсь спосіб використання hibernate.cfg.xml. Це трохи залежить від сплячої версії.

Ти маєш

Configuration configuration = new Configuration();

Якщо ти зробиш

configuration.configure();

Зимує читати hibernate.cfg.xml

Щоб побудувати фабрику сесій, цього досить:

return new Configuration().configure().buildSessionFactory();

Ви можете, звичайно, зробити щось подібне:

Configuration configuration = new Configuration();
configuration.configure();

return configuration.buildSessionFactory
(new StandardServiceRegistryBuilder().
applySettings(configuration.getProperties()).
build());

Вам це потрібно applySettings(configuration.getProperties()), лише якщо у вас є властивості в hibernate.cfg.xml. Але цей код буде працювати тільки з Hibernate 4. Hibernate 5 втратить класи картографування, які він отримає configuration.configure().

hibernate.cfg.xml має бути в корені src папку або, якщо ви використовуєте Maven build, в resources папка (не properties). У будь-якому випадку після відновлення (оновлення) він буде знаходитися в корені папки збірки (bin, build)