Конфигурация гибернации во время выполнения
У меня есть файл hibernate.cfg.xml.
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url"></property>
<property name="connection.username"></property>
<property name="connection.password"></property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
.....................
Это самая интересная часть файла. Теперь я должен установить пропущенные значения: URL, имя пользователя, пароль. Я пытаюсь сделать так:
public static void SetSessionFactory() {
try {
AnnotationConfiguration conf = new AnnotationConfiguration().configure();
// <!-- Database connection settings -->
conf.setProperty("connection.url", URL);
conf.setProperty("connection.username", USERNAME);
conf.setProperty("connection.password", PASSWORD);
SESSION_FACTORY = conf.buildSessionFactory();
} catch (Throwable ex) {
// Log exception!
throw new ExceptionInInitializerError(ex);
}
}
Но он просто загружает мою конфигурацию из hibernate.cfg.xm и не меняет никаких свойств...
url, username, passoword - это аргументы командной строки, поэтому я должен установить их во время выполнения.
3 ответа
Решение
Попробуй позвонить conf.configure();
Вот.
И свойства могут иметь префикс hibernate, например "hibernate.connection.username"
Надеюсь, поможет.
Попробуйте, как это работает нормально
AnnotationConfiguration conf = new
. AnnotationConfiguration() настройки ("/dronehibernate.cfg.xml");
conf.setProperty("hibernate.connection.url","jdbc:mysql://localhost/PAT_DRONE_DB1");
SessionFactory sessionFactory = conf.buildSessionFactory();
Session session = sessionFactory.openSession();
List<NetworkType> channelList = session.createQuery("from NetworkType").list();