Программная установка свойств в Hibernate

Как я могу убедиться, что все свойства загружены из hibernate.cfg.xml, а затем программно добавить дополнительные свойства? Я видел следующий фрагмент кода, но он выглядит как совершенно новая конфигурация, а не как дополнение к существующей.

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

c.setProperty("hibernate.connection.username", "abc" );
c.setProperty("hibernate.connection.password", "defgh629154" ); 
17
задан KyleM 20 May 2011 в 16:07
поделиться

1 ответ

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
  private static SessionFactory sessionFactory;

  static {
    Configuration configuration = new Configuration();

    configuration.addAnnotatedClass (org.gradle.Person.class);
    configuration.setProperty("connection.driver_class","com.mysql.jdbc.Driver");
    configuration.setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/hibernate");                                
    configuration.setProperty("hibernate.connection.username", "root");     
    configuration.setProperty("hibernate.connection.password", "root");
    configuration.setProperty("dialect", "org.hibernate.dialect.MySQLDialect");
    configuration.setProperty("hibernate.hbm2ddl.auto", "update");
    configuration.setProperty("show_sql", "true");
    configuration.setProperty(" hibernate.connection.pool_size", "10");

    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
    sessionFactory = configuration.buildSessionFactory(builder.build());
  }

  public static SessionFactory getSessionFactory() {
     return sessionFactory;
  }
} 

Использование .configure() делает Hibernate для поиска файла hibernate.cfg.xml. Поэтому, если вы не хотите использовать файл hibernate.cfg.xml, не используйте .configure().

5
ответ дан 30 November 2019 в 12:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: