From 55cc386969fb2fa8e2a328cd8cbd8c3d5bb32c6f Mon Sep 17 00:00:00 2001 From: Krzysztof Kramarz Date: Tue, 18 Jun 2019 17:05:14 +0200 Subject: [PATCH 1/3] Add solution, refactor readme.adoc --- .../hibernate/parts/generators/README.adoc | 13 ++++++++----- .../hibernate/parts/generators/model/Author.java | 7 +++---- .../hibernate/parts/generators/model/Book.java | 2 ++ .../hibernate/parts/generators/model/Bookstore.java | 2 ++ .../parts/generators/model/BookstoreBook.java | 1 + .../hibernate/parts/generators/model/Gender.java | 9 --------- 6 files changed, 16 insertions(+), 18 deletions(-) delete mode 100644 src/main/java/ja/workshops/hibernate/parts/generators/model/Gender.java diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc b/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc index 3ee4ccf..24b741b 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc +++ b/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc @@ -1,7 +1,14 @@ == Identyfikatory, klucze główne, sekwencje +ifdef::env-github[] +:tip-caption: :bulb: +:note-caption: :information_source: +:important-caption: :heavy_exclamation_mark: +:caution-caption: :fire: +:warning-caption: :warning: +endif::[] W tym zadaniu będziemy tworzyli generatory wartości identyfikatorów, w uproszczeniu możemy używać zamiennie terminu- kluczy głównych. -Zapoznaj się z prezentacją ``Identyfikatory_klucze_glowne_sekwencje.pdf``, znajdująca się w katalogu projektu. +Zapoznaj się z prezentacją _Identyfikatory_klucze_glowne_sekwencje.pdf_ znajdująca się w katalogu projektu. Następnie stwórz następujące generatory: @@ -23,10 +30,6 @@ nazwa generatora - "moja_sekwencja", nazwa sekwencji - superSekwencja, początkowa wartość dla generatora = 10, rozmiar rezerowany dla pojedynczej sesji = 5. - -.. Dla encji BookstoreBook stwórz dowolny generator sekwencji - - Wykonaj program i zaobserwuj, co się zmieniło w bazie danych. Zauważ, jak zostały użyte przez bazę danych te wartości, które podalismy w opisie generatora. diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/model/Author.java b/src/main/java/ja/workshops/hibernate/parts/generators/model/Author.java index f85f172..029e0da 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/model/Author.java +++ b/src/main/java/ja/workshops/hibernate/parts/generators/model/Author.java @@ -1,9 +1,6 @@ package ja.workshops.hibernate.parts.generators.model; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.ManyToMany; +import javax.persistence.*; import java.util.List; /** @@ -13,6 +10,8 @@ public class Author { @Id + @GeneratedValue(strategy = GenerationType.TABLE, generator = "tabela_generator_wartosci") + @TableGenerator(name = "tabela_generator_wartosci", initialValue = 50, allocationSize = 100, pkColumnValue = "id_tabela_autor", pkColumnName = "tabele", valueColumnName = "wartosc_id") @Column(name = "id", updatable = false, nullable = false) private Long id; diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/model/Book.java b/src/main/java/ja/workshops/hibernate/parts/generators/model/Book.java index ddfd8b8..b44f230 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/model/Book.java +++ b/src/main/java/ja/workshops/hibernate/parts/generators/model/Book.java @@ -12,6 +12,8 @@ public class Book { @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "mojaSekwencja") + @SequenceGenerator(name = "mojaSekwencja", initialValue = 10, allocationSize = 5, sequenceName = "superSekwencja") @Column(name = "id", updatable = false, nullable = false) private Long id; diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/model/Bookstore.java b/src/main/java/ja/workshops/hibernate/parts/generators/model/Bookstore.java index 4899c2f..2095dfc 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/model/Bookstore.java +++ b/src/main/java/ja/workshops/hibernate/parts/generators/model/Bookstore.java @@ -11,6 +11,8 @@ public class Bookstore { @Id + @GeneratedValue(strategy = GenerationType.TABLE, generator = "tabela_generator_wartosci") + @TableGenerator(name = "tabela_generator_wartosci", initialValue = 75, allocationSize = 25, pkColumnValue = "id_tabela_bookstore", pkColumnName = "tabele", valueColumnName = "wartosc_id") @Column(name = "id", updatable = false, nullable = false) private Long id; diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/model/BookstoreBook.java b/src/main/java/ja/workshops/hibernate/parts/generators/model/BookstoreBook.java index 9f5a197..b444b70 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/model/BookstoreBook.java +++ b/src/main/java/ja/workshops/hibernate/parts/generators/model/BookstoreBook.java @@ -11,6 +11,7 @@ public class BookstoreBook { @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private long id; diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/model/Gender.java b/src/main/java/ja/workshops/hibernate/parts/generators/model/Gender.java deleted file mode 100644 index 96d6f90..0000000 --- a/src/main/java/ja/workshops/hibernate/parts/generators/model/Gender.java +++ /dev/null @@ -1,9 +0,0 @@ -package ja.workshops.hibernate.parts.generators.model; - -/** - * @author Bartosz Kupajski - */ -public enum Gender { - MALE, - FEMALE -} From 4d2048a448a81ee053c5c36e01b04c022438a844 Mon Sep 17 00:00:00 2001 From: Krzysztof Kramarz Date: Tue, 18 Jun 2019 17:09:05 +0200 Subject: [PATCH 2/3] refactor --- .../java/ja/workshops/hibernate/parts/generators/README.adoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc b/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc index 24b741b..25178c8 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc +++ b/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc @@ -30,6 +30,9 @@ nazwa generatora - "moja_sekwencja", nazwa sekwencji - superSekwencja, początkowa wartość dla generatora = 10, rozmiar rezerowany dla pojedynczej sesji = 5. + +.. Dla encji BookstoreBook stwórz dowolny generator sekwencji + Wykonaj program i zaobserwuj, co się zmieniło w bazie danych. Zauważ, jak zostały użyte przez bazę danych te wartości, które podalismy w opisie generatora. From 8af283d3eec85b637f5c23053f9d4a2ed178fbda Mon Sep 17 00:00:00 2001 From: Krzysztof Kramarz Date: Wed, 26 Jun 2019 09:39:24 +0200 Subject: [PATCH 3/3] refactor readme.adoc --- .../hibernate/parts/generators/README.adoc | 15 ++++++++------- .../hibernate/parts/generators/model/Author.java | 4 ++-- .../parts/generators/model/Bookstore.java | 4 ++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc b/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc index 25178c8..a11341a 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc +++ b/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc @@ -14,12 +14,13 @@ Następnie stwórz następujące generatory: .. Stwórz generator wartości typu TABLE, użyj go dla encji Autor i Bookstore. Skonfiguruj go następująco: -nazwa tabeli z generatorem: "tabela_generator_wartosci", -początkowa wartość dla generatora = 50, -zakres wartości alokowanych dla pojedynczej sesji = 100, -nazwa kolumny, która wskazuje na dany generator: "tabele", -nazwa generatora: "id_tabela_autor", -nazwa kolumny z wartościami dla generatora: "wartosc_id". +nazwa tabeli z generatorem (table): "tabela_generator_wartosci", +nazwa generatora (name): "generator_wartosci" +początkowa wartość dla generatora (initialValue) = 50, +zakres wartości alokowanych dla pojedynczej sesji (allocationSize) = 100, +nazwa kolumny, która wskazuje na dany generator (pkColumnName): "tabele", +nazwa, po jakiej identyfikowany jest generator w tabeli z generatorami (pkColumnValue) odpowiednio: "id_tabela_autor" / "id_tabela_bookstore", +nazwa kolumny z wartościami dla generatora (valueColumnName): "wartosc_id". Wykonaj program i zaobserwuj, co się zmieniło w bazie danych. Zauważ, jak zostały użyte przez bazę danych te wartości, które podalismy w opisie generatora. @@ -33,6 +34,6 @@ rozmiar rezerowany dla pojedynczej sesji = 5. .. Dla encji BookstoreBook stwórz dowolny generator sekwencji -Wykonaj program i zaobserwuj, co się zmieniło w bazie danych. +Zmień importy encji na własciwe własciwe encje z naszego pakietu (zamiana w ja.workshops.hibernate.parts.connectors.SessionConnector). Wykonaj program i zaobserwuj, co się zmieniło w bazie danych. Zauważ, jak zostały użyte przez bazę danych te wartości, które podalismy w opisie generatora. diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/model/Author.java b/src/main/java/ja/workshops/hibernate/parts/generators/model/Author.java index 029e0da..829d7bc 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/model/Author.java +++ b/src/main/java/ja/workshops/hibernate/parts/generators/model/Author.java @@ -10,8 +10,8 @@ public class Author { @Id - @GeneratedValue(strategy = GenerationType.TABLE, generator = "tabela_generator_wartosci") - @TableGenerator(name = "tabela_generator_wartosci", initialValue = 50, allocationSize = 100, pkColumnValue = "id_tabela_autor", pkColumnName = "tabele", valueColumnName = "wartosc_id") + @GeneratedValue(strategy = GenerationType.TABLE, generator = "generator_wartosci") + @TableGenerator(name = "generator_wartosci", table = "tabela_generator_wartosci", initialValue = 50, allocationSize = 100, pkColumnValue = "id_tabela_autor", pkColumnName = "tabele", valueColumnName = "wartosc_id") @Column(name = "id", updatable = false, nullable = false) private Long id; diff --git a/src/main/java/ja/workshops/hibernate/parts/generators/model/Bookstore.java b/src/main/java/ja/workshops/hibernate/parts/generators/model/Bookstore.java index 2095dfc..8e8d64d 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/model/Bookstore.java +++ b/src/main/java/ja/workshops/hibernate/parts/generators/model/Bookstore.java @@ -11,8 +11,8 @@ public class Bookstore { @Id - @GeneratedValue(strategy = GenerationType.TABLE, generator = "tabela_generator_wartosci") - @TableGenerator(name = "tabela_generator_wartosci", initialValue = 75, allocationSize = 25, pkColumnValue = "id_tabela_bookstore", pkColumnName = "tabele", valueColumnName = "wartosc_id") + @GeneratedValue(strategy = GenerationType.TABLE, generator = "generator_wartosci") + @TableGenerator(name = "generator_wartosci", table = "tabela_generator_wartosci", initialValue = 75, allocationSize = 25, pkColumnValue = "id_tabela_bookstore", pkColumnName = "tabele", valueColumnName = "wartosc_id") @Column(name = "id", updatable = false, nullable = false) private Long id;