Plik Liquibase powinien zawierać:
- id: 09-proparty-schema
- author: uzupełnij swoim imieniem
- tableName: property
- informacja o nazwie pola, typie pola, wartości nullable:
-- id, uuid, false
-- city, text, false
-- post_code, text, false
-- street, text, false
-- house, text, true
-- room, numeric, false
-- single, boolean, false
-- user_id, uuid, false - w tym przypadku dochodzi jeszcze wartość: foreignKeyName: fk_user_id_property i reference: users(id), przykład jest w pliku 007-expensesSchema.yaml
Pamiętaj o dodaniu nowego pliku do db.changelog-master.yaml
Test PropertyServiceIntegrationTest powinien sprawdzać czy wynik zwracany z ProperyService nie jest null- metoda addProperty, powinna zwracać id encji - UUID - jako że ten identyfikator jest tworzony automatycznie, podczas zapisu do bazy danych, można sądzić, że jego obecność jest jednoznaczna z poprawnym utworzeniem wpisu do bazy danych.
W InitIntegrationTestData trzeba dodać nowe rzeczy:
- pola:
-- ProperyService
-- ProperyRepository
Dla Klas PropertyDto i PropertyEntity stwórz:
- gettery i settery
- konstruktory sparametryzowany - wszystkie pola i bezparametrowy
- equals i hashCode + toString
-- rooms i single możesz pominąć podczas generowania equals i hashCode, te wartości mogą się zmieniać - ktoś może dostawić ściankę działową i podzielić jeden pokój na dwa
- przy Encji możesz skopiować adnotację z już istniejącej klasy, np.: AssetEnity, pamiętaj o zmianie nazwy tabelki
W klasie PropertyService:
- powinna występować jedna metoda: addProperty(PropertyDto)
- metoda powinna wywoływać: propertyRepository.save(propartyEntity)
- Pamiętaj - chodzi tylko o prosty zapis do bazy danych, przygotowanie szkieletu pod implementację właściwą, więc przygotowanie obiektu i zapis do bazy powinny być jak najprostsze.
Rozszerzenie PropertyRepository, do wyboru, jeden z interfejsów:
- JpaRepository
- CrudRepository
Robert Szczygielski Dice Dev. Polityka Prywatności i Regulamin Szkoleń Online
Strona www stworzona w kreatorze WebWave.