Giriş
Şu satırı dahil ederiz.
- org.hibernate.boot.registry.BootstrapServiceRegistry
- org.hibernate.boot.registry.StandardServiceRegistry
Bu sınıf StandardServiceRegistry nesnesi oluşturur.
Hibernate 4 ile bu sınıf yerine ServiceRegistryBuilder kullanılıyordu.
Kullanım
Bu nesne de SessionFactory oluşturmak için kullanılır. Şöyle yaparız. Configuration nesnesi içinde bir MetaDataSources nesnesi yaratılır. Bu nesneden MetaDataBuilder elde edilir. MetaDataBuilder nesnesinden MetaData nesnesi elde edilir ve nihayet SessionFactory nesnesi elde edilir.
applySettings metodu - Map
Belirtilen Map içindeki parametreleri alır. java.util.Properties Map arayüzünü gerçekleştirdiği için bu metod ile kullanılabilir.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Normalde Hibernate DataSource'ları kendi yaratır. Dışarıdan vermek için şöyle yaparız.
Şöyle yaparız.
Belirtilen dosyayı okur. Şöyle yaparız.
Şu satırı dahil ederiz.
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
Hibernate 5 ile iki tane ServiceRegistry nesnesi geliyor. Bunlar şöyle- org.hibernate.boot.registry.BootstrapServiceRegistry
- org.hibernate.boot.registry.StandardServiceRegistry
Hibernate 4 ile bu sınıf yerine ServiceRegistryBuilder kullanılıyordu.
Kullanım
Bu nesne de SessionFactory oluşturmak için kullanılır. Şöyle yaparız. Configuration nesnesi içinde bir MetaDataSources nesnesi yaratılır. Bu nesneden MetaDataBuilder elde edilir. MetaDataBuilder nesnesinden MetaData nesnesi elde edilir ve nihayet SessionFactory nesnesi elde edilir.
// Create the SessionFactory from hibernate.cfg.xml
Configuration configuration = new Configuration();
configuration.configure("/hibernate.cfg.xml");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
applySettings metodu - Map
Belirtilen Map içindeki parametreleri alır. java.util.Properties Map arayüzünü gerçekleştirdiği için bu metod ile kullanılabilir.
Örnek
Şöyle yaparız.
Configuration configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
servletContextEvent.getServletContext().setAttribute("SessionFactory", sessionFactory);
ÖrnekŞöyle yaparız.
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());
applySettings metodu - DataSourceNormalde Hibernate DataSource'ları kendi yaratır. Dışarıdan vermek için şöyle yaparız.
//retrieve your DataSource
DataSource dataSource = ...;
Configuration configuration = new Configuration()
.configure();
//create the SessionFactory from configuration
SessionFactory sf = configuration
.buildSessionFactory(
new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties())
//here you apply the custom dataSource
.applySetting(Environment.DATASOURCE, dataSource)
.build());
build metoduŞöyle yaparız.
static SessionFactory sessionFactory = null;
Configuration cfg = new Configuration().configure();
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties());
sessionFactory = cfg.buildSessionFactory(builder.build());
configure metoduBelirtilen dosyayı okur. Şöyle yaparız.
Map<String,String> jdbcUrlSettings = new HashMap<>();
String jdbcDbUrl = System.getenv("JDBC_DATABASE_URL");
if (null != jdbcDbUrl) {
jdbcUrlSettings.put("hibernate.connection.url", System.getenv("JDBC_DATABASE_URL"));
}
registry = new StandardServiceRegistryBuilder().
configure("hibernate.cfg.xml").
applySettings(jdbcUrlSettings).
build();
Hiç yorum yok:
Yorum Gönder