konto usunięte

Temat: ADF asocjacja trzech tabel

Witajcie, wykorzystuje jDevelopera z ADF do stworzenia web serwisu (pokazywanie i edycja danych, z tym nie mam problemu). Nie wiem jak złączyć trzy tabele. Gdzie w jednej są dwa klucze obce. Złączyć tak aby zamiast id pokazywało się pole do którego to id prowadzi. Chciałbym aby asocjacja działała w taki sposób, że późniejsza edycja danych w formularzu nie była by problemem. (udało mi się zrobić asocjacje 2 tabel, ale edycja w formularzu nie działała poprawnie)

Trzy tabele, zaznaczę powiązania

*kategorie *produkty *firmy

id_kategorii <---| id_firmy <---> id_firmy
nazwa |--> id_kategorii nazwa
nazwa
cena

Po schemacie chyba wiadomo o co chodzi.
Chciałbym aby po wyświetlaniu produktów pokazywała się nazwa firmy i nazwa kategorii, a nie ich id. Jak to rozwiązać?

PozdrawiamTen post został edytowany przez Autora dnia 24.05.14 o godzinie 09:34
Rafał Dąbrowski

Rafał Dąbrowski Starszy Inżynier
Projektowy w
Transition
Technologies S.A.

Temat: ADF asocjacja trzech tabel

Jeżeli nie chodzi Ci o operacje CRUD na kategoriach i firmach, to znaczy, że jest to klasyczny przypadek LOV.
http://download.oracle.com/otn_hosted_doc/jdeveloper/1...

LOVów używasz dokładnie w takich przypadkach jak twój. Pokazuje inny atrybut a uzupełniam wartością innego atrybutu. Otwiersz VO z produktami, wskazujesz atrybut id_firmy i dla niego definiujesz lov zbudowanego na podstawie firm i analogicznie dla kategorii.

konto usunięte

Temat: ADF asocjacja trzech tabel

Zrobiłem tak właśnie i działa, dane się zmieniają w bazie. Jeszcze jedno pytanie mam, jak zrobić żeby w liście nie pokazywał się numer id tylko nazwa, ( nazwy pokazują się po rozwinięciu listy ) i przy edycji formularza.
Rafał Dąbrowski

Rafał Dąbrowski Starszy Inżynier
Projektowy w
Transition
Technologies S.A.

Temat: ADF asocjacja trzech tabel

W viewObject, dla atrybutów dla których dodałeś LOV masz w jego edycji możliwość ustawiania atrybutów które mają zostać uzupełnione w modelu (pierwsza zakładka jak pamiętam) - nie musi to być tylko id, bo przy wyborze wartości można uzupełniać wiele atrybutów. Tobie tak czy inaczej wystarczy id:)

Na drugiej zakładce masz opcje to definiowania co ma się wyświetlać w liście (czy displayAttributes).
Można definiować, całą masę innych opcji. Zwróć uwagę czy ten słownik będzie 'duży'.
Dla listy powyżej 30 wpisów ja zwykle używam nie comboboxów ale list z szukajką itp. czyli wczytuje się na starcie kilka pierwszych/ważnych wpisów lub autosugest itp. Jeżeli masz więcej dużych słowników do znacznie może wydłużyć się czas ładowania takiej strony.

Następna dyskusja:

ADF - Uprawnienia "Formular...




Wyślij zaproszenie do