Hibernate: sessionFactory.close()

0

Hej,
Mam kod który realizuje zapisanie użytkownika do bazy:

// stworzenie instancji klasy pominiete oraz stworzenie fabryki sesji/sesji/transkacji
        session.save(user);
        
        
        session.getTransaction().commit();
        session.close();

Po wykonaniu tego kodu jest OK, tabele są stworzone (hibernate.hbm2ddl.auto = create-drop) i nowy uzytkownik dodany, ale gdy dodam zamknięcie fabryki sesji na końcu tj. sessionFactory.close() , to dzieje się coś dziwnego i nie zapisuje wyników operacji do bazy, czyli ten kod nie działa poprawnie:

// stworzenie instancji klasy pominiete oraz stworzenie fabryki sesji/sesji/transkacji
        session.save(user);
        
        
        session.getTransaction().commit();
        session.close();
        sessionFactory.close() // Bez zamykania fabryki sesji jest OK
1

A nie jest to tak ze create-drop tworzy baze na poczatku, i usuwa ja na koncu?

0
mućka napisał(a):

A nie jest to tak ze create-drop tworzy baze na poczatku, i usuwa ja na koncu?

Hmmm sprawdzę to, bo dotychczas myślałem że create-drop usuwa tabele i na ich miejsce tworzy nowe table za każdym razem, a nie że tworzy, korzysta z nich i usuwa je na koniec (w momencie wywołania metody close() instancji klasy SessionFactory).

mućka napisał(a):

A nie jest to tak ze create-drop tworzy baze na poczatku, i usuwa ja na koncu?

Tak miałeś rację. Wpis z loga przy wywołaniu close() dla sessionFactory:

Hibernate: drop table if exists user cascade

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