<commit_before>:numbered:
:icons: font
:pagenums:
:imagesdir: img
:iconsdir: ./icons
:stylesdir: ./styles
:scriptsdir: ./js

:image-link: https://pbs.twimg.com/profile_images/425289501980639233/tUWf7KiC.jpeg
ifndef::sourcedir[:sourcedir: ./src/main/java/]
ifndef::resourcedir[:resourcedir: ./src/main/resources/]
ifndef::imgsdir[:imgsdir: ./../img]
:source-highlighter: coderay




=== Tworzenie połączenia bazowanowego 

==== Tworzenie puli połączeń na przykładzie HikariCP

=== Tworzenie prostego szablonu projektu : Hibernate only
   operowanie na obiektach  Session i SessionFactory oraz persistence.xml 

==== Tworzenie SessionFactory na podstawie hibernate.cfg.xml


=== Tworzenie prostego szablonu projektu : JPA 
   operowanie na obiektach  EntityManager i EntityManagerFactory oraz persistence.xml
   
=== Tworzenie prostego szablonu projektu : Spring + Spring Data
   integracja Hibernate po JPA w Spring

[source,java]
----
Configuration cfg = new Configuration()
SessionFactory sessionFactory = cfg.buildSessionFactory();
----

==== Session per instacja bazy 

[source,java]
----
Configuration configurationH2 = new Configuration().configure("h2.cfg.xml");
SessionFactory sessionFactoryH2 = configurationH2.buildSessionFactory();
Configuration configurationPostgresql = new  Configuration().configure("postgresql.cfg.xml");
SessionFactory sessionFactoryPostgresql = configurationPostgresql.buildSessionFactory();
----

[source,java]
----
StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
serviceRegistryBuilder.applySettings(configuration.getProperties());
configuration.addPackage("pl.java.scalatech.domain.simple").addAnnotatedClass(Person.class);
ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
----

[source,java]
----
Configuration configuration = new Configuration();
configuration = configuration.configure();
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
builder = builder.applySettings(configuration.getProperties());
SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build());
----

NOTE: Singleton pattern

NOTE: thread-safe

NOTE: immutable

NOTE: Factory: tworzy, zarządza, pobiera Session per request. Session pobiera fizyczne połączenie do bazy danych   
   
=== Ćwiczenia : exercise/creating

==== CreateSessionByOrdinarySpring

==== CreateSessionByPersistenceContext

==== CreateSessionBySpringData

==== CreateUsingStandardServiceRegistryBuilder

==== CreateUsingStandardServiceRegistryBuilder2

   
   
=== Stworzenie i zapisanie prostej encji oraz jej odczyt 

=== Mapowania

=== MetaModel<commit_msg>naturalId<commit_after>:numbered:
:icons: font
:pagenums:
:imagesdir: img
:iconsdir: ./icons
:stylesdir: ./styles
:scriptsdir: ./js

:image-link: https://pbs.twimg.com/profile_images/425289501980639233/tUWf7KiC.jpeg
ifndef::sourcedir[:sourcedir: ./src/main/java/]
ifndef::resourcedir[:resourcedir: ./src/main/resources/]
ifndef::imgsdir[:imgsdir: ./../img]
:source-highlighter: coderay




=== Tworzenie połączenia bazowanowego 

==== Tworzenie puli połączeń na przykładzie HikariCP

=== Tworzenie prostego szablonu projektu : Hibernate only
   operowanie na obiektach  Session i SessionFactory oraz persistence.xml 

==== Tworzenie SessionFactory na podstawie hibernate.cfg.xml


=== Tworzenie prostego szablonu projektu : JPA 
   operowanie na obiektach  EntityManager i EntityManagerFactory oraz persistence.xml
   
=== Tworzenie prostego szablonu projektu : Spring + Spring Data
   integracja Hibernate po JPA w Spring

[source,java]
----
Configuration cfg = new Configuration()
SessionFactory sessionFactory = cfg.buildSessionFactory();
----

==== Session per instacja bazy 

[source,java]
----
Configuration configurationH2 = new Configuration().configure("h2.cfg.xml");
SessionFactory sessionFactoryH2 = configurationH2.buildSessionFactory();
Configuration configurationPostgresql = new  Configuration().configure("postgresql.cfg.xml");
SessionFactory sessionFactoryPostgresql = configurationPostgresql.buildSessionFactory();
----

[source,java]
----
StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
serviceRegistryBuilder.applySettings(configuration.getProperties());
configuration.addPackage("pl.java.scalatech.domain.simple").addAnnotatedClass(Person.class);
ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
----

[source,java]
----
Configuration configuration = new Configuration();
configuration = configuration.configure();
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
builder = builder.applySettings(configuration.getProperties());
SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build());
----

NOTE: Singleton pattern

NOTE: thread-safe

NOTE: immutable

NOTE: Factory: tworzy, zarządza, pobiera Session per request. Session pobiera fizyczne połączenie do bazy danych   
   
=== Ćwiczenia : exercise/creating

==== CreateSessionByOrdinarySpring

==== CreateSessionByPersistenceContext

==== CreateSessionBySpringData

==== CreateUsingStandardServiceRegistryBuilder

==== CreateUsingStandardServiceRegistryBuilder2

   
   
=== Stworzenie i zapisanie prostej encji oraz jej odczyt 

=== Sprawdzić logi : konfiguracja

[source,txt]
----
org.hibernate.type=trace

----

=== Mapowania

=== MetaModel
{'fraction_non_alphanumeric': 0.10972297664312873, 'fraction_numerical': 0.008690928843020097, 'mean_word_length': 6.239842726081259, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 10}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6018907', 'n_tokens_mistral': 1611, 'n_tokens_neox': 1581, 'n_words': 344}