2013-04-08 16 views
8

Mam kilka scenariuszy, w których serwer odpytuje obiekty z bazy danych za pomocą JPA, a następnie wysyła obiekty do klienta za pośrednictwem usług internetowych.
Ponieważ klient spodziewa się pełnego wykresu w takich scenariuszach, chciałbym przesłonić leniwy załadowanych kolekcji z chętnym ładowaniem i prawdopodobnie żądanie ładowania wsadowego (dla wydajności). Czy istnieje sposób w JPA (lub EclipseLink), aby przesłonić zapytanie w sposób ogólny (bez przepisywania zapytania) i zażądać pełnego wykresu?Wymuszanie zapytania JPA, aby zwrócić z niecierpliwością wszystkie kolekcje/pola

Odpowiedz

9

10.1.3. Fetch Joins

Zapytania JPQL mogą określać jedno lub więcej deklaracji sprzężenia, które pozwalają na określenie, które pola w zwróconych wystąpieniach będą wstępnie pobrane.
SELECT x FROM Magazine x join pobierz x.articles WHERE x.title = 'JDJ'
Powyższe zapytanie zwraca instancje czasopisma i gwarantuje, że pole artykułów zostanie już pobrane w zwróconych wystąpieniach.
Wiele pól może być określone w odrębnych dołączyć pobrać deklaracje:
SELECT x FROM Magazine x dołączyć pobierające x.articles dołączyć sprowadzić x.authors GDZIE x.title = 'JDJ'

Źródło: http://docs.oracle.com/cd/E13189_01/kodo/docs40/full/html/ejb3_overview_query.html#ejb3_overview_join_fetch

Powiązane problemy