|
57 | 57 | import org.hibernate.engine.spi.EntityHolder;
|
58 | 58 | import org.hibernate.engine.spi.EntityKey;
|
59 | 59 | import org.hibernate.engine.spi.LoadQueryInfluencers;
|
60 |
| -import org.hibernate.engine.spi.ManagedEntity; |
61 | 60 | import org.hibernate.engine.spi.NaturalIdResolutions;
|
62 | 61 | import org.hibernate.engine.spi.PersistenceContext;
|
63 | 62 | import org.hibernate.engine.spi.PersistentAttributeInterceptable;
|
64 | 63 | import org.hibernate.engine.spi.PersistentAttributeInterceptor;
|
65 |
| -import org.hibernate.engine.spi.SelfDirtinessTracker; |
66 | 64 | import org.hibernate.engine.spi.SessionFactoryImplementor;
|
67 | 65 | import org.hibernate.engine.spi.SessionImplementor;
|
68 | 66 | import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
|
283 | 281 | import static org.hibernate.boot.model.internal.SoftDeleteHelper.resolveSoftDeleteMapping;
|
284 | 282 | import static org.hibernate.engine.internal.ManagedTypeHelper.asPersistentAttributeInterceptable;
|
285 | 283 | import static org.hibernate.engine.internal.ManagedTypeHelper.isPersistentAttributeInterceptable;
|
286 |
| -import static org.hibernate.engine.internal.ManagedTypeHelper.processIfManagedEntity; |
287 | 284 | import static org.hibernate.engine.internal.ManagedTypeHelper.processIfPersistentAttributeInterceptable;
|
288 |
| -import static org.hibernate.engine.internal.ManagedTypeHelper.processIfSelfDirtinessTracker; |
289 | 285 | import static org.hibernate.generator.EventType.INSERT;
|
290 | 286 | import static org.hibernate.generator.EventType.UPDATE;
|
291 | 287 | import static org.hibernate.internal.util.ReflectHelper.isAbstractClass;
|
@@ -4042,38 +4038,36 @@ public boolean isVersionPropertyGenerated() {
|
4042 | 4038 | && ( isVersionGeneratedOnExecution() || isVersionGeneratedBeforeExecution() );
|
4043 | 4039 | }
|
4044 | 4040 |
|
| 4041 | + private Generator versionPropertyGenerator() { |
| 4042 | + return getEntityMetamodel().getGenerators()[ getVersionProperty() ]; |
| 4043 | + } |
| 4044 | + |
4045 | 4045 | public boolean isVersionGeneratedOnExecution() {
|
4046 |
| - final Generator strategy = getEntityMetamodel().getGenerators()[ getVersionProperty() ]; |
4047 |
| - return strategy != null && strategy.generatesSometimes() && strategy.generatedOnExecution(); |
| 4046 | + final Generator strategy = versionPropertyGenerator(); |
| 4047 | + return strategy != null |
| 4048 | + && strategy.generatesSometimes() |
| 4049 | + && strategy.generatedOnExecution(); |
4048 | 4050 | }
|
4049 | 4051 |
|
4050 | 4052 | public boolean isVersionGeneratedBeforeExecution() {
|
4051 |
| - final Generator strategy = getEntityMetamodel().getGenerators()[ getVersionProperty() ]; |
4052 |
| - return strategy != null && strategy.generatesSometimes() && !strategy.generatedOnExecution(); |
| 4053 | + final Generator strategy = versionPropertyGenerator(); |
| 4054 | + return strategy != null |
| 4055 | + && strategy.generatesSometimes() |
| 4056 | + && !strategy.generatedOnExecution(); |
4053 | 4057 | }
|
4054 | 4058 |
|
4055 | 4059 | @Override
|
4056 | 4060 | public void afterInitialize(Object entity, SharedSessionContractImplementor session) {
|
4057 |
| - if ( isPersistentAttributeInterceptable( entity ) && getRepresentationStrategy().getMode() == POJO ) { |
4058 |
| - final BytecodeLazyAttributeInterceptor interceptor = getEntityMetamodel().getBytecodeEnhancementMetadata() |
4059 |
| - .extractLazyInterceptor( entity ); |
| 4061 | + if ( isPersistentAttributeInterceptable( entity ) |
| 4062 | + && getRepresentationStrategy().getMode() == POJO ) { |
| 4063 | + final BytecodeLazyAttributeInterceptor interceptor = |
| 4064 | + getEntityMetamodel().getBytecodeEnhancementMetadata() |
| 4065 | + .extractLazyInterceptor( entity ); |
4060 | 4066 | assert interceptor != null;
|
4061 | 4067 | if ( interceptor.getLinkedSession() == null ) {
|
4062 | 4068 | interceptor.setSession( session );
|
4063 | 4069 | }
|
4064 | 4070 | }
|
4065 |
| - |
4066 |
| - // clear the fields that are marked as dirty in the dirtiness tracker |
4067 |
| - processIfSelfDirtinessTracker( entity, AbstractEntityPersister::clearDirtyAttributes ); |
4068 |
| - processIfManagedEntity( entity, AbstractEntityPersister::useTracker ); |
4069 |
| - } |
4070 |
| - |
4071 |
| - private static void clearDirtyAttributes(final SelfDirtinessTracker entity) { |
4072 |
| - entity.$$_hibernate_clearDirtyAttributes(); |
4073 |
| - } |
4074 |
| - |
4075 |
| - private static void useTracker(final ManagedEntity entity) { |
4076 |
| - entity.$$_hibernate_setUseTracker( true ); |
4077 | 4071 | }
|
4078 | 4072 |
|
4079 | 4073 | @Override
|
|
0 commit comments