Objaśnienie kodu

Odpowiedz Nowy wątek
2011-08-27 10:17
Atena
0

Witam Czy mogłby jakiś Pan mi to objaśnić step by step? Nie mam bladego pojęcia o co chodzi z góry dzięki

 
    public T find(Object id, Object o) {
        setSession(WorkHibernateUtil.getSessionFactory().getCurrentSession());
        getSession().beginTransaction();
        Criteria criteria = getSession().createCriteria(o.getClass());
        criteria.add(Restrictions.eq("id", id));
        Object result = criteria.uniqueResult();
        getSession().getTransaction().commit();
//        WorkHibernateUtil.getSessionFactory().close();
        return (T) result;
    }
 
    public List<T> findAll(Object o) {
        setSession(WorkHibernateUtil.getSessionFactory().getCurrentSession());
        getSession().beginTransaction();
        Criteria criteria = getSession().createCriteria(o.getClass());        
        List list = criteria.list();
        List<Object> objects = list;
        getSession().getTransaction().commit();
//        WorkHibernateUtil.getSessionFactory().close();
        return (List<T>) objects;
    }

Pozostało 580 znaków

2011-08-27 12:09
0

A czego nie rozumiesz - hibernate'a czy generyków ?

BTW: tu nie ma Panów tylko ziomki i przyjacieje :D

edytowany 1x, ostatnio: szypxx, 2011-08-27 13:40

Pozostało 580 znaków

2011-08-27 12:21
Atena
0

Generyków chyba bardziej bo o hibernate mam blade pojecie

Kurna - generyki są proste ;) Na YT jest tutorial o generykach co ja się z niego uczyłem - tylko podstawy "Intermediate Java Tutorial 17 , 18, 19" @author Bucky. I Ten tutek od Wibowita w Java Tutorials jest dobry :) - szypxx 2011-08-27 13:37

Pozostało 580 znaków

2011-08-27 13:31
0

Generyki:


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2011-08-27 13:48
0

Tyle co wczoraj wyczytałem z dokumentacji to metody find() i findAll() wyszukują obiekty znajdujące się w liście i zwraca true? jeśli taki obiekt albo tablica znajdują się w niej.
Dobre jest to że nie trzeba przeciążać metod ani rzutować na odpowiedni typ jak to ponoć się kiedyś robiło

 public class TypyGeneryczne {
 
    public static void main(String[] args) {
    Integer[] intTab = {1,2,3,4,5,6,7,8,9,0};
    Character[] chTab = {'w','e','c'};
    wypiszElementyTablicy(intTab);
    wypiszElementyTablicy(chTab);
    }
 
    public static <T> void wypiszElementyTablicy(T[] tab){
    for(T element : tab)
        System.out.printf("%s ",element);
    System.out.print("\n");
    }
}

Pokuszę się o wyjaśnienie:
to wszystko co tu jest to definiowanie obiektu result w metodzie find()

 
 public T find(Object id, Object o) {
        setSession(WorkHibernateUtil.getSessionFactory().getCurrentSession());
        getSession().beginTransaction();
        Criteria criteria = getSession().createCriteria(o.getClass());
        criteria.add(Restrictions.eq("id", id));
        Object result = criteria.uniqueResult();
        getSession().getTransaction().commit();

Następnie zwracany jest ten obiekt jeśli zostanie znaleziony:

return (T) result;
    } 

W drugiej metodzie zwracana jest cała lista obiektów wcześniej zdefiniowanych - a raczej wszystkie wystąpienia tego obiektu w postaci listy.

public List<T> findAll(Object o) {
        setSession(WorkHibernateUtil.getSessionFactory().getCurrentSession());
        getSession().beginTransaction();
        Criteria criteria = getSession().createCriteria(o.getClass());        
        List list = criteria.list();
        List<Object> objects = list;
        getSession().getTransaction().commit();
//        WorkHibernateUtil.getSessionFactory().close();
        return (List<T>) objects;
    } 

Nie jestem wiarygodnym źródłem jeszcze - mogę się mylić ;)

edytowany 9x, ostatnio: szypxx, 2011-08-27 14:48

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0