Forum zamknięte. Zapraszamy do grupy na Facebooku
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Pobieranie starych danych przez hibernate (cachowanie)
04-11-2013, 10:48 AM
Post: #1
Pobieranie starych danych przez hibernate (cachowanie)
Witajcie,
Mój problem polega na tym, że wykonując zapytanie select
Kod PHP:
List<JobsTmpresultList session.createQuery("FROM JobsTmp").list();
session.getTransaction().commit(); 

hibernate zwraca mi wydaje mi się że cachowane wyniki (stare wpisy których już nie mam w bazie)
Wyniki porównuję z sqlDeveloperem.

Dodam że próbowałem robić
session.close();
oraz
session.refresh();
ale to nie pomaga..
Ma ktoś pomysł jak zmusić hibernate'a do pokazywania zawsze aktualnyh danych?
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
06-01-2013, 10:00 AM
Post: #2
RE: Pobieranie starych danych przez hibernate (cachowanie)
Z jakiego korzystasz transaction managera? Springa?
I czy tworzysz za pomocą sessionFactory nową sesje? Jeśli nie, to pewnie jesteś zamknięty ciągle w jednym obiekcie sesyjnym w którym są scachowane dane.
Jeśli to nie to, zawsze możesz spróbować z session.setCacheMode(CacheMode.IGNORE).

Twój kod mniej więcej powinien wyglądać następująco :

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.save(customer);
if ( i % 20 == 0 ) { //20, same as the JDBC batch size
//flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}

tx.commit();
session.close();
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości