Mam sobie POJO, które dostaje na wejściu. I teraz potrzebowałbym w jak najszybszy (najprostszy) sposób zapisać go do bazy przez JPA.
Niestety nie mam dostępu do modelu i nie moge go opisać annotacjami.

Jest jakis sensowny sposób aby to ogarnąc (zapewne będzie z 20-30 pojo/enumów) z tego co znalazlem to najbardziej sensowne:
- stworzyc encje i mapper (np. mapstruct)
- wygenerowac pliki hbm (jest jakis generator?), bo reczne pisanie troche odpada

#
via Android
  • 0
@Myzreal widziałem sugestie jako jedno z rozwiązań. Adapter i a notacje na getterach. Tylko gość napisał że nie ma pewności czy to działa. Wychodzi na to ze będę musiał szybki test zrobić. Bo to nawet sensowne rozwiązanie.
Jest ktoś w stanie powiedzieć jak zrobić w kodzie z hibernate, żeby powstał problem n+1?
Czytam, że same relacje nie wystarczą bo będzie problem n+1, trzeba się wspomagać fetch joinem czy innymi rozwiązaniami, a u mnie w ogóle ten problem nie występuje ( ͡° ʖ̯ ͡°)
Jak będę miał zadanie na live codingu żeby zmapować encje to mam na to zwrócić uwagę czy olać bo ten problem już
Jak mam dwie klasy Entity powiązane ze sobą dwukierunkową relacją ManyToMany np. User i Discount to dobrym pomysłem będzie dorobienie pola w klasie User: Map?

Potrzebuję wiedzieć czy jest aktywna zniżka czy nie. A jak zmienię pole isActivated w bazie na dowolnym obiekcie Discount to będzie to zmiana widoczna dla wszystkich użytkowników, którzy korzystają z tej zniżki, a ja chcę tylko dla jednego usera. ( ͡° ʖ̯ ͡°)
takiMirek29 - Jak mam dwie klasy Entity powiązane ze sobą dwukierunkową relacją ManyT...

źródło: comment_1672406366yzXDsx5yplhxx5HKFEldfe.jpg

Pobierz
Hej, korzystam z Hibernate w mojej aplikacji Spring Boot. Model bazy danych jest dość skomplikowany, oznacza to że od tabelki przechowującej id właściciela zasobu, do samego zasobu, mogą być nawet 4 inne tabele po drodze. W jaki sposób mam sprawdzać czy użytkownik próbujący uzyskać dostęp do zasobu jest jego właścicielem? Nie uśmiecha mi się pobieranie po kolei 5 encji w górę tylko aby pobrać id. #jpa #hibernate #spring #springboot #java #bazydanych #
Jeżeli zasób jest bezpośrednią własnością właściciela, to rekord powinien zawierać jego ID. Jeżeli zasób jest częścią jakiegoś złożonego obiektu, to i tak potrzebujesz całości, żeby mieć kontekst. Wówczas zazwyczaj będziesz odczytywał dane od drugiej strony. Jesi to jeszcze inny przypadek, to można zrobić jakąś tabelę asocjacyjną albo stored procedure, która będzie zwracać to, czego potrzebujesz. Dane przetwarzamy zawsze jak najbliżej źródła :)
via Wykop Mobilny (Android)
  • 0
Jak chce sobie zapisać w spring data w relacji many to many ale bez duplikatów to jak to najlepiej zrobić? Bo mam sobie Book i Category, category ma unique name. No i przy dodawaniu ksiazki chce sobie dodać kategorie które nie istnieją a te co istnieją to tylko przypisac do tej książki, i już probowałem z 1000 rzeczy i jestem debilem help xD

Na zasadzie:

Book {
title:"blabla",
categories:[{name:"horror"},{name:"drama"}]
}
No i
Mam problem z pobraniem tablicy obiektów. Mam klasy takie jak widać i nie zaciąga mi kolekcji. Po drugie, nawet jak kolekcja jest wypełniona to dochodzi do nieskończonej rekurencji ( ͡° ͜ʖ ͡°) Otóż to wygląda tak klasa Order -> OrderProduct -> Order i się zapętla. Potrzebuje pobrać cały obiekt order wraz z wypełnioną kolekcja kalsy OrderProduct z obiektem Product. Jak coś takiego zrobić? Kombinowałem z @JsonIgnore, ale
s.....r - Mam problem z pobraniem tablicy obiektów. Mam klasy takie jak widać i nie z...

źródło: comment_160953590848UxhQQW5SPNmuKIXMEZ79.jpg

Pobierz
Mireczki potrzebuję zmapować wynik @NamedNativeQuery na klasyczne POJO (nie entity).
Mój ból polega na tym, że w projekcie mam jpa 2.0 a @ConstructorResult pojawił się dopiero w 2.1 ()

Kojarzycie jak to zrobić inaczej?
Nie chcę mapować na entity bo musiałbym niepotrzebnie dorzucać tabele do bazy a potrzebuję tych wyników jako obiekt jedynie w trakcie działania aplikacji, bez persystencji.

#programowanie #programista15k #java #hibernate #jpa #sql #spring
@victordeleco2:
Pewnie da się z mniejszymi zależnościami, ale nie chce mi się szukać dokładnie. Ogólnie powinieneś dodać to co potrzebujesz: pakiet który ma adnotacje JPA. @Entity, @Table, @Column etc, jakieś walidatory jeśli je stosujesz.
sprawdź z:

org.hibernate
hibernate-entitymanager

org.springframework.data
spring-data-jpa
Mireczki potrzebuję porady (again):
Mam w projekcie @NamedNativeQuery i robię selecta który ma w tabeli kolumnę z datą (np. CREATED). Potrzebuję na potrzeby warunku w kluzuli WHERE zmodyfikować wspomnianą datę i dodać do niej n dni. np.

select * from PRODUCTS where CREATED+n dni < current date
Idzie coś takiego w ogóle zrobić?
Jakieś wskazówki/hasła pod kątem których szukać?
java+jpa+hibernate+mssql

#jpa #hibernate #nativequery #mssql #java #naukaprogramowania #programista15k
via Wykop Mobilny (Android)
  • 0
Cześć, próbuję w swoim małym projekcie oddzielić warstwę obiektów domenowych od encji, które są zapisywane do bazy danych i mam taki problem:

Przykład (używam JPA)

VisitEntity -> poza standardowymi typami prostymi (id, datę itp) przechowuje informacje o Doktorze (DoctorEntity).

DoctorEntity -> poza id, name itp ma kolekcję VisitEntity (mapowanie OneToMany).

Po odczytaniu z bazy chce te dane przekonwertować na obiekty domenowe Visit i Doctor i na nich oprzeć całą logikę. Jednak teraz
@Rubajticos: narysuj to sobie na kartce i postaraj się tak pogupować dane, żeby unikąć cykli. Generalnie unikaj cykli zależności.
Pytanie, czy doktor w bazie danych musi mieć info o swoich wizytach? Jeśli potrzebujesz w domenie, to mozesz zrobić więcej niż jedno zapytanie zeby to wyciągnąć (zazwyczaj to ne problem). I zamiast JPA użyj czegoś ludzkiego ;)
@Rubajticos: JPA samo w sobie potrafi sobie poradzic z takim mapowaniem obustronnym. Wiec bys musial w swoim podejsciu zaimplementowac dokladnie te same mechanizmy lub skorzystac z kompozycji (detale kawalek dalej).
Natomiast DDD nie oznacza koniecznie rozdzielenia encji od obiektow domenowych w takim sensie ze to musza byc osobne klasy. Glownym postulatem jest nie pozwolenie na sytuacje gdzie model bazy danych narzuca strukture klasom. W kodzie nalezy modelowac domene tak jak jest
#java #spring #jpa
Powiedzmy że mam formularz, w którym w jednym polu uploaduje plik. Chcę zrobić tak żeby w plik zapisał się na file systemie a ścieżka do niego w bazie. Jak powinno wyglądać pole w encji jpa reprezentujące ten plik? Czy da się skonfigurować spring data jpa tak żeby zapisywał w taki sposób?
@Blackhorn: tu raczej niema cokonfigurowac, mozesz wygenerowac hash dla pliku i zapisac plik z takim hashem i hash do bazy. mozesz tez zapisac formularz i masz id i z tym id zapisac plik. nigdzie nie jest powiedziane ze formularz musi byc 1:1 z tym co masz w bazie
@srgs: dokładnie. Modelowanie bazy na podstawie frontendu to raczej bad practice.

btw, z multipart file upload i tak tworzony jest plik tymczasowy, więc nie trzeba go kopiować, można zrobić "move".
Hej, wie ktoś gdzie robię błąd ? Próbuje połączyć ze sobą Obiekt "Match" < OneToOne -> "User" i obiekt "Match" <-OneToMany-> MatchSet, ale podczas odpalania spring boota tworzy się tylko obiekt user i matchset, obiekt match się nie tworzy i nie ma pomiędzy nimi żadnych relacji.

obiekty
error

na zdjęciu schematy które tworza się w bazie, btw dlaczego w match
set jest id i match_id ?

#springboot #java #jpa #mysql #
infamia - Hej, wie ktoś gdzie robię błąd ? Próbuje połączyć ze sobą Obiekt "Match" < ...

źródło: comment_xABRtqLvusKTKlem0AbfHrfb3IwWTEMI.jpg

Pobierz
Czy ktoś ma pomysł czemu to nie działa? Dla was to pewnie oczywiste a ja czegoś nie widze. Próbuje wyciągnąć z tabeli nazwę teamu i odpowiadającą jej ilość wystąpień. Próbowałem już to dać do ResultSet oraz do Mapy ale nie działa. Na stacku znalazłem wątek o Projections. Czy ktoś mi może powiedzieć co robię źle? Ewentualnie jakiś inny pomysł jak wyciągnąć z tego query te dane lub na jaki typ będą konwertowalne
MrFisherman - Czy ktoś ma pomysł czemu to nie działa? Dla was to pewnie oczywiste a j...

źródło: comment_z1y2OYMovqrwMPBUGvndTPtaIVzVfI4R.jpg

Pobierz
czy wszystkie elementy, obiekty klasy oznaczonej jako @ entity i @ table muszą być oznaczone jako @ column i odpowiadać kolumnom tej tabeli?
czy część z nich może nie odnosić się do tabeli? jak można sobie z tym poradzić?
mam klasę User z adnotacją @ entity, która zawiera m.in. listę ListallDays (oznaczona jako @ manytomany) ale oprócz tego w klasie mam też listę ListdaysGroupedByBlocks i ta lista już nie ma odniesienia do
@Brodeon: Mam problem z fetch LAZY w JPA. Mam w obiekcie zmienną która jest obiektem z annotacją @OneToOne i fetch type LAZY. Gdy próbuję zmienić wartość pewnej zmiennej z annotacją @Transactional w tym obiekcie z annotacją @OneToOne to że tak powiem nie działa to. Gdy zmieniłem na Eager to od razu zadziałała zmiana tej zmiennej. W przypadku gdy była Lazy to próbowałem zrobić Hibernate.unproxy(obiektZLazy) i niestety nie zadziałało. Ktoś mi może
@Brodeon: Mam problem z JPA w Spingu. Mianowicie gdy usuwam Parenta który ma @OneToMany(cascade = CascadeType.ALL) nie chce usuwać dzieci z tej właśnie relacji przed usuwaniem parenta i wywala błąd Cannot delete or update a parent row: a foreign key constraint fails. Wszystkie ManyToMany i ManyToOne działają jak należy tylko to OneToMany nie chce działać tak jak powinno

#programowanie #jpa #spring
@TheDudee: Co do cudów :D. To niestety do niektórych entity potrzebuję voodoo bo przykładowo posty mogą mieć zdjęcia i należy usunąć zdjęcia gdy post jest usuwany, dlatego "normalnie" nie usuwam posta tylko musiałem ręcznie napisać taką logikę. Cholera wie czemu to nie działa dla tamtych OneToMany. Na szybko skleiłem szybki projekcik w którym zrobiłem kilka entity które mają tak samo OneToMany i normalnie usuwa dzieci przy usuwaniu rodzica więc o co