• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JPA wyciągnięcie informacji z tabeli łączącej

Object Storage Arubacloud
0 głosów
169 wizyt
pytanie zadane 11 lutego 2017 w Java przez mkl215 Początkujący (280 p.)
Hejka, mam problem :)

W mojej aplikacji mam klasy:
USER -> informacje o użytkowniku
GRUPA_PRZEDMIOTÓW -> nazwy grup przedmiotów
PRZEDMIOTY -> przedmioty.

Mniejsza o nazwy, są nieco inne, ale chciałbym nakreślić tym problem.

Wiadomo, że każdy przedmiot posiada informacje o grupie w jakiej się znajduje.
Chciałbym uzyskać coś w rodzaju ManyToMany:
USER -> PRZEDMIOTY

Stworzyłem w bazie osobną tabelę, która posiada:
- user_id
- przedmioty_id

Z jednej strony nie chcę tworzyć kolejnej encji do tej tabeli, nie chcę również tworzyć u usera informacji o przedmiotach jakie on posiada - to ma się dziać poza jego wyciąganiem z bazy.

Macie jakieś pomysły?

Myślałem, żeby utworzyć w encji PRZEDMIOTY adnotację @JoinTable wraz z kolumnami jedną do tej encji (przedmioty_id) a drugą inverse do encji USER (user_id), ale nie chcę wyciągając z tabeli kilka przedmiotów, w każdej przechowywać informację o użytkowniku, bo to mija się z celem...

Help!!

Dodam też, że podczas gdy użytkownik potrzebuje informacji o przedmiotach (a w takim wypadku potrzebuję również informacje o wszystkich przedmiotach) działa on tak:
1. wyciąga wszystkie grupy przedmiotów (mapa <id, nazwa>)
2. wyciąga wszystkie przedmioty (niezależnie czy użytkownik posiada któreś czy nie)
3. tworzy mapę <nazwa_przedmiotu, List<przedmiot>>
4. wyciąga informacje z tabeli łączącej o przedmiotach które posiada użytkownik (szuka po id usera)
5. iteruje po ostatniej liście i zaznacza w części wspólnej (wszystkich przedmiotów i przedmiotów użytkownika) i wpycha je do list w mapie stworzonej w pkt. 3 (wg nazw grupy)
6. taką mapę przesyłam dalej.

Może mięlibyście inny pomysł na rozwiązanie tego?

Do końca nie wiem jak się dobrać do tabeli łączącej używając JPA jeśli tabela łącząca nie jest encją...

1 odpowiedź

0 głosów
odpowiedź 11 lutego 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Troche mętnie to napisałeś. Ja zrozumiałem to tak że chcesz zrobić mapowanie many to many, ale jednak nie chcesz robić many to many:)

Jak połaczysz dwie tabele adnotacja @ManyToMany to bez problemowo bedziesz mógł odwoływać się do posiadanych przedmiotów.

Podobne pytania

0 głosów
1 odpowiedź 620 wizyt
pytanie zadane 19 lipca 2020 w Java przez matiibal Użytkownik (620 p.)
0 głosów
1 odpowiedź 600 wizyt
pytanie zadane 17 marca 2020 w Java przez Placidus Użytkownik (580 p.)
0 głosów
2 odpowiedzi 246 wizyt
pytanie zadane 28 sierpnia 2018 w Java przez Pablo93 Użytkownik (800 p.)

92,570 zapytań

141,422 odpowiedzi

319,644 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...