sortowanie rekordow z tabeli - Spring + Hibernate

sortowanie rekordow z tabeli - Spring + Hibernate
MA
  • Rejestracja:ponad 11 lat
  • Ostatnio:około miesiąc
  • Postów:123
0

witam,

w widoku wypisuje liste rekordow w tabeli:

Kopiuj
 
<table class="data">
    <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Telephone</th>
        <th>PESEL</th>
        <th>Action</th>
    </tr>
    <c:forEach items="${employeeList}" var="emp">
        <tr>
            <td>${emp.lastname}, ${emp.firstname} </td>
            <td>${emp.email}</td>
            <td>${emp.telephone}</td>
            <td>${emp.pesel}</td>
            <td><a href="delete/${emp.id}">delete</a></td>
        </tr>
    </c:forEach>
    </table>

i teraz jak zrobic zeby dane byly posortowane po danych ktorejs z kolumn, przykladowo po nazwiskach alfabetycznie? gdzie to sie robi i jak? pomoze ktos jak to zrobic? chodzi mi zebym mial np. buttona i po jego kliknieciu dane sortuja sie alfabetycznie a strona sie odswieza, nie wiem wlasnie gdzie umiescic i jak zrobic to sortowanie...

Shalom
!a tagi to co? same się będą dodawać? następnym razem będzie kosz + ban
Tancerd
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:87
0

Robi się to w kodzie dao. Jeżeli używasz criteria to zamiast loadAll() piszesz odpowiednie criteria z sortowaniem. Możesz oczywiście posortować z poziomu javy, ale nie uważam tego za najlepsze rozwiązanie. Potem z dao przekazujesz czy to do jakiegoś servisu, czy to już do kontrolera i serwujesz na widok. Metoda w kontrolerze odpowiedzialna za ten RequestMapping może przyjmować opcjonalny parametr odnośnie sortowania i odpowiednio się do niego stosować przy wyrzucaniu listy.

MA
  • Rejestracja:ponad 11 lat
  • Ostatnio:około miesiąc
  • Postów:123
0

w DAO wywoluje liste,

Kopiuj
 
@Override
    public List<EmployeeEntity> getAllEmployees() {
        return this.sessionFactory.getCurrentSession().createQuery("from EmployeeEntity").list();
    }

jak mialyby tu wygladac te criteria? nowa metode musze pisac do tego?

Tancerd
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:87
0

W swoim kodzie używasz hqla. Jeżeli za jego pomocą chcesz wyciągnąć posortowaną liste po jakiejś kolumnie to byłoby coś w stylu createQuery("from EmployeeEntity order by email").
Za pomocą criteria:

Kopiuj
 
criteria = sessionFactory.getCurrentSession().createCriteria(EmployeeEntity.class)
                                                                  .addOrder(desc("email"));
return criteria.list();

Reszta to już zwykła java, czyli dostosowanie Order na podstawie kolumny itp.

KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
MA
  • Rejestracja:ponad 11 lat
  • Ostatnio:około miesiąc
  • Postów:123
0

dzieki, poczytam co i jak i jak cos to bede pisal

bakeraw2
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:400
0

W Spring Data miałbyś coś takiego:

Kopiuj
//Results are sorted in ascending order
public List<Person> findByLastNameOrderByLastNameAsc(String lastName);
 
//Results are sorted in descending order
public List<Person> findByLastNameOrderByLastNameDesc(String lastName)
krzysiek050
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:1272
0

Jeżeli ma to być prosta tabela bez stronicowania to rozejrzyj się za tabelą która pozwala sortować w javascripcie. Np. jqGrid.
Ma to 2 zalety:

  • Sortowanie po stronie klienta - nie obciąża serwera.
  • Możliwa zmiana sortowania na inne np. z sortowania po nazwisku na sortowanie po imieniu bez przeładowania strony.

Jeżeli dojdzie stronicowanie to trzeba dodać sortowanie po stronie serwera, ale mimo wszystko pobieranie jest wtedy przez rest tylko danych do tabeli więc zysk w szybkości też jest.

SZ
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:616
0

jqGrid niestety już jest komercyjny

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.