@DynamicUpdate
• Обновлять только измененные поля
• Аннотация Hibernate, не JPA
Метод flush
• Синхронізація стану об'єкта Session (persistence context) та БД
• Усі зміни сесія спочатку записує в оперативну пам'ять, метод session.flush() – скидає всі зміни до БД
• Не commit
• Помилка OutOfMemoryException
Генератор ID
• IDENTITY –використання поля autoincrement (якщо підтримується в СУБД)
• TABLE – використовувати власну таблицю (у будь-якому СУБД)
• SEQUENCE –спеціальна таблиця (якщо підтримується СУБД)
• AUTO –JPA бібліотека сама вибирає який спосіб використовувати (залежить від реалізації бібліотеки)
• Може виникнути помилка «Table 'hibernate_sequence' doesn't exist»
• За замовчуванням Hibernate намагається знайти sequence таблицю hibernate_sequence
Параметр property hbm2ddl
Якщо вказано параметр true – створюється нова таблиця навіть із зміненими назвами полів
Вибірка полів
• Використовувати інтерфейс Selection
• У ранніх версіях Hibernate API часто використовувався Projection, але він для Deprecated API (Criteria)
• Поля з великим обсягом даних – не завантажувати відразу, а лише на вимогу