Я сейчас читаю книгу Влада Михальчи High-Performance Java Persistence
. В разделе «Улучшение байт-кода» говорится, что enableDirtyTracking
может оптимизировать производительность с большими объемами данных путем замены отражений. Но мне просто интересно, есть ли недостатки? К сожалению, я не смог найти какую-либо или только очень старую информацию.
<plugin>
<groupId>org.hibernate.orm.tooling</groupId>
<artifactId>hibernate-enhance-maven-plugin</artifactId>
<version>${hibernate.version}</version>
<executions>
<execution>
<configuration>
<failOnError>true</failOnError>
<enableDirtyTracking>true</enableDirtyTracking>
<enableLazyInitialization>false</enableLazyInitialization>
<enableAssociationManagement>false</enableAssociationManagement>
<enableExtendedEnhancement>false</enableExtendedEnhancement>
</configuration>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
И во время дальнейших исследований документации Hibernate я обнаружил еще три свойства (enableLazyInitialization
, enableAssociationManagement
, enableExtendedEnhancement
),Но я не могу найти много об этом в Интернете. Если я правильно понял, enableAssociationManagement
делает ненужной независимую обработку двунаправленных отношений и заменяет enableLazyInitialization
подобно enableDirtyTracking
Reflections? К сожалению, я не смог найти ничего о enableExtendedEnhancement
. Вот почему у меня тот же вопрос, что и выше. Должен ли я просто использовать это? Или какие недостатки вытекают из этого?