Witam,
Pierwszy raz w hibernate używam buforowania, 2go poziomu. Po konfiguracji chciałm sprawdzić jego działanie. Jendnak na początku przetestowałem 'obowiazkowe' buforowanie 1go poziomu tranzakcji. Którego nie da się wyłączyć. Jak widać w jednej sesji stworzyłem dwa obiekty o indexie 1. Myślalem że na poziomie tranzakcji zapytanie (obiekt) zostanie zapamiętane w buforze i wykona sie tylko przy tworzeniu 1go obiektu. Ku mojemu zdziwieniu otrzymalem dwa zapytania. Myle się? może czegoś nie rozumiem z tym buforowaniem? Jaki może być powód dodatkowego zapytania?
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx=null;
try{
tx = session.beginTransaction();
Area a = (Area)session.get(Area.class, 1);
Area a2 = (Area)session.get(Area.class, 1);
tx.commit();
}
catch (Exception e) {if (tx!=null) tx.rollback();e.printStackTrace();Log.setLog(e.toString()); }
finally {session.close();}
Hibernate: select area0_.ID as ID1_0_0_, area0_.ACTIVE as ACTIVE2_0_0_, area0_.DESCRIPTION as DESCRIPT3_0_0_, area0_.VERSION as VERSION4_0_0_ from AREA area0_ where area0_.ID=?
Hibernate: select area0_.ID as ID1_0_0_, area0_.ACTIVE as ACTIVE2_0_0_, area0_.DESCRIPTION as DESCRIPT3_0_0_, area0_.VERSION as VERSION4_0_0_ from AREA area0_ where area0_.ID=?