Hibernate - luk6233/interview GitHub Wiki
ORM framework (object-relational mapping) мапінг java-об'єктів до таблиць
JPA (java persistance API)
Не потрібно конекшенів, стейтменти, резалт сети. Під капотом JDBC.
Переваги: просте апі, щоб витягувати і зберігати обєкти в базі даних механізм транзакцій
датасорс надає конекшени до бд
LocalSessionFactoryBean створює SessionFactory - для роботи з сесіями, і поміщає в контекст. Вказати датасорс, пакет, проперті хібернейта (діалект, hbm2ddl.auto - як оновлювати таблиці - update, create-drop, none (якщо флайвей))
PlatformTransactionManager - дає можливість використовувати анотацію @Transactional
JpaTransactionManager
з сешнфакторі берем сесію
session.save() session.get(Company.class, 4) якщо немає запису, то в session.load() - якщо немає запису, тоді кидає ексепшн з сесії транзакцію (session.beginTransaction)
комітимо транзакцію (transaction.commit())
Ентіті - обєкт з ідентифікатором Валью обджект - для переноса даних
@MappedSuperclass @Entity @Table @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column @Transient (не мапить)
mappedBy - поле по якому мапиться FetchType - LAZY - вичитує з бази тільки по запиту EAGER
@Transactional - робиться проксі над методом (коміт або ролбек)