Аннотация @Immutable — это основной способ пометить сущность или коллекцию как неизменяемую в Hibernate. Применив эту аннотацию к классу сущности или полю коллекции, ты говоришь Hibernate рассматривать эту сущность/коллекцию как доступную только для чтения, предотвращая любые изменения данных.
Можно также настроить неизменяемость через XML-файлы маппинга Hibernate, установив свойство mutable в значение false для целевой сущности. Это даёт тот же результат, что и подход на основе аннотаций.
<class name="EntityName" mutable="false">
<!-- entity mapping -->
</class>
Когда сущность или коллекция помечена как неизменяемая, Hibernate применяет следующие ограничения:
Важно понимать, что по умолчанию Hibernate рассматривает все сущности и коллекции как изменяемые. Это позволяет выполнять стандартные CRUD-операции (Create, Read, Update, Delete). Явная пометка сущности как неизменяемой меняет это поведение, делая её подходящей для справочных данных только для чтения или статических справочников.
Рассмотри возможность пометить сущности как неизменяемые, когда:
Аннотация @Immutable предотвращает выполнение dirty-checking на сущности в Hibernate, что может улучшить производительность за счет снижения накладных расходов, связанных с отслеживанием изменений.
Новый — ещё не проверен сообществом
Вы