wartość z listy criteria.list()

wartość z listy criteria.list()
KO
  • Rejestracja:około 12 lat
  • Ostatnio:około 10 lat
  • Postów:16
0

Mam bazę danych a w niej tabelę uzytkownicy. W tej tabeli są kolumny: nazwiska, imiona, pesel, adres, itd.
Mam kawałek kodu:

Kopiuj
Session session = MyEntityManager.unwrap(Session.class);
        Criteria criteria = session.createCriteria(Uzytkownicy.class);
        criteria.add( Restrictions.like("pesel", pesel) );
        List result = criteria.list();
        session.close();

Jak teraz z result "wziąć" wartość nazwiska? Potrzebuję żeby wstawić w pole tekstowe (dalej analogicznie imiona, adres itd).

Gdy mam kod:

Kopiuj
Iterator it =result.iterator();

        while(it.hasNext()){
            Object pomoc[]=(Object[])it.next();

        }

to mam błąd w IDE (NetBeans):
Exception in thread "main" java.lang.ClassCastException: okna.Uzytkownicy cannot be cast to [Ljava.lang.Object;

edytowany 1x, ostatnio: bogdans
bogdans
!Wstawiaj kod w znaczniki <code=java></code>
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Ale czemu ty chcesz to pisać w jakiejś javie 1.4? Wiesz że od jakiegoś czasu jest już java 1.8? o_O
Weźże użyj genericów i nie bierz gołego List tylko List<Uzytkownicy>!


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Zobacz pozostałe 2 komentarze
airborn
Problem w przypadku Hibernate jest taki, że 'trzeba', a nie 'można' ;)
Shalom
Hibernate 4 nie ma już czasem genericsow?
Shalom
docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch12.html ?
airborn
Tak, te wszystkie przykłady odnoszą się do javax.persistence.criteria.CriteriaBuilder z JPA. Oczywiście Hibernate jako implementacja JPA wspiera to, ale samo Criteria z Hibernate wciąż nie korzysta z genericów.
KO
  • Rejestracja:około 12 lat
  • Ostatnio:około 10 lat
  • Postów:16
0

Jak zrobię:

Kopiuj
List<Uzytkownicy>

to i tak nadal mam problem z pobraniem konkretnej wartości (cały wiersz to jeden obiekt). Możesz rozwinąć co dalej?
Nie jestem profesjonalistą, uczę się sam, tworzę sobie głównie w Netbeans, tam podglądam co i jak się robi, potem dostosowuję, szukam w internecie co i jak...
Dzięki za wskazówkę dot. Generic, już się przyglądam co i jak. Mimo wszystko co dalej odnośnie pytania na początku?

KO
  • Rejestracja:około 12 lat
  • Ostatnio:około 10 lat
  • Postów:16
0

Ogarnąłem:

Kopiuj
List<Uzytkownicy> result = criteria.list();
String s = ((Uzytkownicy)result.get(0)).getNazwiska();

Działa tak jak chciałem :)

edytowany 2x, ostatnio: koklowski
GA
nie ma to jak zaakceptować własną odpowiedź w topicu założonym przez siebie :)
KO
Wiem jak to wygląda ale skoro wpadłem na rozwiązanie... ;)
airborn
  • Rejestracja:prawie 16 lat
  • Ostatnio:prawie 7 lat
  • Postów:274
1

Prościej było by zrzutować od razu całą listę:

Kopiuj
List<Uzytkownicy> users = (List<Uzytkownicy>)criteria.list();
String s = users.get(0).getNazwiska();

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.