[ prvul1 @ 05.03.2007. 13:09 ] @
Zamolio bih nekoga ko je koristio ili koristi Hibernate da iznese svoja iskustva. Naime, da li se isplati prelaziti na H? Kliko je komplikovano uci u stos ako se krece od nule? Koji Tutorijal preporucujete, example isl? Koliko ubrzava razvoj, ako ga uopste ubrzava?
[ srdjan_b @ 05.03.2007. 16:37 ] @
I mene takodje zanima ista stvar.
Uspio sam uraditi par primjera i jako mi se dopada kako funkcionise. Primjere sam radio u eclipse a nasao sam ih u dokumentaciji na http://www.hibernate.org/. Mozes da koristis Hibernate Tools, on ti izgenerise dosta koda.
[ bags @ 05.03.2007. 22:38 ] @
Ja sam koristio za ucenje samo njihove stvari sa sajta.
Isplati se za ucenje ,kasnije dosta olaksa.Jedino sto je meni zasmetalo je sporost.
E sad mozda nisam neki vrag dobro namjestio ili je mozda bilo do skrnave baze...
[ ph4t @ 06.03.2007. 21:55 ] @
Kad usporedis sa JDBC, Hibernate itekako ubrzava razvoj. Manjak je sto proxies zakompliciraju stvari a i optimizacija traje dosta zato sto tacno moras da znas cime se bavis
[ urukhai @ 23.08.2007. 20:45 ] @
Naleteo sam na jedan deo koda koji mi baš nije sasvim jasan, a tiče se instanciranja i korišćenja Session objekta. Znam da Session objekat nije threadsafe i da se koristi ThreadLocal klasa radi postizanja istog. Deo koda:

Code:

private static ThreadLocal<Session> threadSession = new ThreadLocal<Session>();

public static Session getSession() throws HibernateException {       
               Session s = threadSession.get();
               if (s == null)
                   try {
                       s = sessionFactory.openSession();
                       threadSession.set(s);
                   } catch (HibernateException ex) {
                       throw ex;
                   }
               return s;
           }


Pročitao sam javadoc za ThreadLocal ali mi nije baš najjasnije. Samo da napomenem da se aplikacija izvršava na tomcat-u i da sam upoznat sa situacijom
da se request i response objekti vezuju za određenu nit.

[Ovu poruku je menjao hyle dana 25.08.2007. u 23:24 GMT+1]
[ zigizig @ 24.08.2007. 13:40 ] @
Ova klasa olakšava rad:
http://www.newspiritcompany.com/retroevolution/src/hiberutil.htm
[ urukhai @ 24.08.2007. 13:46 ] @
Znam da klasa HibernateUtil olakšava rad, ali sam pitao za ThreadLocal.
[ hyle @ 25.08.2007. 22:23 ] @
Taj deo koda je zadužen da vrati Hibernate sesiju.
Prvo proverava da li Thread koji se izvržava već ima kreiranu sesiju - Session s = threadSession.get();
Ako sesija ne postoji radi se kreiranje sesije - s = sessionFactory.openSession();
i kreirana sesija se stavlja u memoriju kojoj može pristupiti jedino taj Thread - threadSession.set(s);

ThreadLocal možeš posmatrati kao mapu čiji je ključ Thread koji se trenutnu izvršava. Na primer:
Code:

public class MyThreadLocal {

  private static Map threadLocalValues = new HashMap();

  public static Object get() {
    return threadLocalValues.get(Thread.currentThread());
  }

  public static void set(Object threadLocalValue) {
    threadLocalValues.put(Thread.currentThread(), threadLocalValue);
  }

}


Implementacija ThreadLocal klase nije ovako prosta kao što sam je napisao ali mislim da ti ovaj primer može poslužiti da shvatiš kako ThreadLocal radi.

Pozdrav!
[ urukhai @ 26.08.2007. 00:35 ] @
Puno ti hvala na objašnjenju i vremenu!
[ ZeRo8 @ 27.08.2007. 11:22 ] @
Ne morate se petljati sa sesijama i mapingom ako koristite JBOSS Seam. On koristi hibernate anotacije i ne treba koristiti nikakve DAO ili session in view, sve je vec spremljeno.
[ urukhai @ 27.08.2007. 17:26 ] @
Kako misliš da nemoram da se smaram sa mapiranjem? Koliko znam moraš da mapiraš bean na tabelu, a da li ćeš koristiti xml file ili anotacije to je stvar izbora i verovatno ko zna čega još.