Hibernate, Spring - otwieranie i zamykanie sesji, poprawne użycie.

0

Cześć,

Mam taki przykładowy kod:

        configuration = new Configuration().configure("hibernate.cfg.xml")
                .addAnnotatedClass(Company.class);
                .addAnnotatedClass(Employee.class);

        SessionFactory factory = configuration.buildSessionFactory();
        Session session = factory.getCurrentSession();

//operacje do wykonania

        session.beginTransaction();
       
//zapisywanie danych

        session.getTransaction().commit();
        factory.close();

Załóżmy że mam w projekcie kilka klas @Repository w których wykonuję operacje crudowe.
Czy jest jakiś inny sposób aby za każdym razem nie używać w nich przytoczonego kodu?
Czy można np zrobić klasę Connection i wstrzykiwać ją zawsze tam gdzie chcę połączyć się z bazą? Może jest jakiś "ładniejszy" sposób?

Wiem że w JPA można użyć @PersistenceContext ale tu akurat chodzi mi o czystego Hibernate

0

hibernate.cfg.xml

What year is this?!

Czy można np zrobić klasę Connection i wstrzykiwać ją zawsze tam gdzie chcę połączyć się z bazą?

Można.

Może jest jakiś "ładniejszy" sposób?

Hikari Connection Pool + JDBCTemplate, hiberate zaorać.

0

Wiele firm, programistów korzysta jeszcze przecież z Hibernate.

0

Fraza na dziś - Spring Data JPA

1
  1. Na pewno nie powinieneś tworzyć SessionFactory przy każdym zapytaniu.
  2. Używaj interfejsu EntityManager ze standardu JPA, zamiast Session. Będzie mniej bólu np. przy podbijaniu zależności jeśli korzystałbyś z jakiegoś API dostępnego w Hibernate.
  3. Użyj wzorca template method, wyjdzie Ci coś a la „generyczne DAO”, przepraszam: „repository”.
  4. Zamiast pisać wszystko z palca użyj Spring Data JPA (najlepiej wiedząc co się dzieje pod spodem).

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