@Immutable vs @Entity (mutable = false) в спящем режиме
В чем разница между ними, если они есть?
Должен ли один или оба использоваться на предприятии?
Ответ 1
Для субъекта практически нет разницы. @Immutable получает приоритет (то есть, если у вас есть объект, который аннотируется как как @Immutable и @Entity(mutable = "true") он будет считаться неизменным).
@Immutable также может использоваться для коллекций с почти той же семантикой. Подробности здесь
Ответ 2
Аннотации org.hibernate.annotations.Entity устарели и будут удалены в будущей версии Hibernate.
Следовательно, вы всегда должны использовать аннотацию @Immutabale если у вас есть объекты, которые никогда не должны быть изменены Hibernate.
Как я объяснил в этой статье, @Immutable annotation сообщает Hibernate загружать объекты в режиме только для чтения, поэтому модификации сущностей не могут отслеживаться механизмом грязной проверки.
Чтобы объекты @Immutabale никогда не @Immutabale для массовых запросов обновления, начиная с Hibernate 5.2.17, вы можете установить следующее свойство конфигурации: