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..a11341a 100644 --- a/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc +++ b/src/main/java/ja/workshops/hibernate/parts/generators/README.adoc @@ -1,18 +1,26 @@ == 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: .. 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. @@ -26,7 +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 f85f172..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 @@ -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 = "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/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..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,6 +11,8 @@ public class Bookstore { @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; 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 -}