|
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