Hibernate: Sortowanie Criteria

A i dla mnie nadszedł czas, na ten oto dzień, że zacząłem wgłębiać tajniki Hibernate'a. Póki co tylko śladowe ilości, na chwilowy użytek, ale zawsze coś:



  public static List<ArchiveInventoryItemsDictionary> findByIdWithItsOrder(List dictionaryIds) throws Exception {
      if (dictionaryIds != null && !dictionaryIds.isEmpty()) {
          Criteria criteria = DSApi.context().session().createCriteria(ArchiveInventoryItemsDictionary.class);
          criteria.add(Restrictions.in("id", dictionaryIds));
          criteria.addOrder(Order.asc("manualSort"));
          return (List<ArchiveInventoryItemsDictionary>) criteria.list();
      }
      return new ArrayList<ArchiveInventoryItemsDictionary>();
  }



A co to wszystko oznacza można dowiedzieć się z różnych stron, jest ich masa w necie. Powiem tylko główne rzeczy ocb:


  • ArchiveInventoryItemsDictionary.class - to klasa która odpowiada tabeli. Po przejściu do niej, będzie można zobaczyć, jakie pola są dostępne do wyszukania. Czasem też jest w tej klasie zdefiniowana tabela, po której nastąpi wyszukanie, a czasem jest w innym miejscu np. w powiąanym XMLu.
  • criteria.add(Restrictions.in("id", dictionaryIds)) - To oznacza, coś podobnego do WHERE w SQLu, czyli to są kryteria wyszukiwań. W tym przypadku, wyszuka tylko i wyłącznie te rekordy, które w kolumnie 'id' - kolumna z klasy ArchiveInventoryItemsDictionary - mają wartości ze zmiennej dictionaryIds.
  • criteria.addOrder(Order.asc("manualSort")) - To odpowiednik Order by. W tym przypadku oznacza, że będzie porządkowało wg. 'manualSort' Ascending.
  • criteria.list() - w tym momencie jest generowana lista. Jak będzie null to zazwyczaj tutaj pojawiają się problemy.


Bardzo mnie interesuje co o tym sądzisz, dlatego byłoby mi miło, jeśli byś napisał w komentarzu coś o tym, może być cokolwiek :)

Komentarze

Popularne posty z tego bloga

IntelliJ: zmiana rozmiaru czcionki scrollem

ThunderBird: jak zrobić professional stopkę