2012-11-08 25 views
6

Próbuję znaleźć informacje o tym, jak wybrać tylko niektóre pola jednostki przy użyciu Spring Data (używam JPA). Chcę wybrać tylko określone informacje o encji, interfejsy repozytorium daje ci możliwość zwrócenia informacji z CAŁEGO podmiotu !. Czasami potrzebuję tylko 2 lub 3 pól podmiotu i wracając 20,30, ... 100 .. pól może być trochę przesadą.Wybór pól na wiosennych danych

Ten rodzaj funkcjonalności jest czymś, co robiłbym przy użyciu prognoz Kryteriów Hibernacji, a nawet zapytań JPA "SELECT NEW ....". Nie wiem, czy jest to możliwe dzięki Spring Data.

Dzięki.

+0

Wydaje się, że to nie jest jeszcze możliwe. Sprawdziłem tracker problemów, znalazłem to. [DATAJPA-51] (https://jira.springsource.org/browse/DATAJPA-51). – yagamipaul

+0

Po prostu utwórz zapytanie, dodaj do niego adnotację '@ Query' i uruchom swój kod. To powinno nadal działać ... –

Odpowiedz

3

Co można zrobić, to zwrócić List<Object[]> z repozytorium. Następnie w swojej klasie usług wykonaj iterację na tej liście i ręcznie utwórz potrzebny obiekt. Repozytorium próbka metoda

@Query("select el.moduleId, el.threadId from ExceptionLog el") 
public List<Object[]> tempQuery(); 
2

myślę, że można też zrobić to w ten sposób

SomeDataPOJO{ 
    required col1 
    required col2 
} 

a następnie napisać zapytanie jak ten

@Query("select new SomeDataPOJO from requiredTable where xyz="abc") 
public List<SomeDataPoJO> tempQuery() 
Powiązane problemy