Tworzenie EntityMenagera bez persistence unit.

0

Jak stworzyć EntityMenagera bez persistence unit korzystając z Spring Boota, ale nie tworząc persistence.xml tylko najwyżej coś w application.properties dodać?
Tzn komunikację z bazą danych mam, mogę też utworzyć proste Repozytorium rozszerzające CrudRepository, ale nie mam jak stworzyć transakcji, w której mógłbym parę Obiektów zapisać do Bazy danych. Wcześniej w DAO udało mi się stworzyć EntityManagera przez adnotację @PersistenceContext.

Teraz chciałbym w innej klasie uruchomieniowej w obrębie projektu dodać parę przykładowych instancji, żeby sprawdzić czy struktura w bazie danych jest jako-tako.

Drugie pytanie. Jeżeli mam klasy Teacher i Student, to lepiej zrobić to z dziedziczenia po np. Person czy zrobić jakiś interfejs z seterami i geterami do wszystkich "wspólnych" pól? Zależy mi na tym żebym miał jakąś tabelę przechowujaca Teacher i Student razem i w zależności od tego, czy to będzie student czy teacher niektóre pola będą nullami. Czy takie rozwiązanie jest ok? Czy lepiej w dwóch różnych tabelach? Czy da się coś takiego zrobić używając sposobu z interfejsem?

0

Zamiast klasy uruchomieniowej pisz testy. Testy mają osoby katalog źródłowy i ten osobny katalog może mieć swój plik persistence.xml. Jak dobrze pójdzie, to ten plik uzyska priorytet nad plikiem z katalogu src i będziesz miał dostęp do bazy.

Da się kombinować bez tego pliku, może ktoś inny Cię naprowadzi.

Odpowiem tylko na pytanie zgodne z tematem. Nawiasem mówiąc temat jest błędny, bo persistence unit to Ty chcesz, tylko pliku xml nie chcesz.

1

@Aisekai mozesz zrobić sobie klasę z @Configuration i tam zdefiniować @Bean do EntityManagerFactory i wtedy żadnego xmla nie trzeba już.

0

Dokładnie jak @Shalom pisze. ja zawsze w domu piszę korzystam z EntityManagerFactory, podpisanam sobie DataSource i mam oddzielne profile DataSource to uruchamiania normalnie a inne do testów integracyjnych

0

Testów integracyjnych na razie nie umiem pisać, w sumie nawet nie wiem czy są. Na razie chciałem po prostu w jakiś sposób uzupełnić paroma rekordami bazę danych, żeby móc potem jakiś większy projekt zrobić. Dzięki. A co z drugim pytaniem?

0

Ja bym zrobił dziedziczenie lub relacje jeden-jeden . A poza tym polecam poczytać o Luqibase :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1