36
36
import org .hibernate .metamodel .mapping .*;
37
37
import org .hibernate .metamodel .mapping .internal .MappingModelCreationProcess ;
38
38
import org .hibernate .persister .entity .AbstractEntityPersister ;
39
- import org .hibernate .persister .entity .Lockable ;
40
- import org .hibernate .persister .entity .OuterJoinLoadable ;
41
39
import org .hibernate .reactive .adaptor .impl .PreparedStatementAdaptor ;
42
40
import org .hibernate .reactive .loader .ast .internal .ReactiveSingleIdArrayLoadPlan ;
43
41
import org .hibernate .reactive .loader .ast .spi .ReactiveSingleIdEntityLoader ;
85
83
* @see ReactiveUnionSubclassEntityPersister
86
84
* @see ReactiveSingleTableEntityPersister
87
85
*/
88
- public interface ReactiveAbstractEntityPersister extends ReactiveEntityPersister , OuterJoinLoadable , Lockable {
86
+ public interface ReactiveAbstractEntityPersister extends ReactiveEntityPersister {
89
87
90
88
Log LOG = LoggerFactory .make ( Log .class , MethodHandles .lookup () );
91
89
@@ -117,11 +115,11 @@ default String generateSelectLockString(LockOptions lockOptions) {
117
115
final SessionFactoryImplementor factory = getFactory ();
118
116
final SimpleSelect select = new SimpleSelect ( factory )
119
117
.setLockOptions ( lockOptions )
120
- .setTableName ( getRootTableName () )
121
- .addColumn ( getRootTableIdentifierColumnNames ()[ 0 ] )
122
- .addRestriction ( getRootTableIdentifierColumnNames () );
118
+ .setTableName ( getEntityMappingType (). getMappedTableDetails (). getTableName () )
119
+ .addColumn ( getIdentifierPropertyName () )
120
+ .addRestriction ( getIdentifierPropertyName () );
123
121
if ( isVersioned () ) {
124
- select .addRestriction ( getVersionColumnName () );
122
+ select .addRestriction ( getVersionMapping (). getVersionAttribute (). getAttributeName () );
125
123
}
126
124
if ( factory .getSessionFactoryOptions ().isCommentsEnabled () ) {
127
125
select .setComment ( lockOptions .getLockMode () + " lock " + getEntityName () );
@@ -132,10 +130,10 @@ default String generateSelectLockString(LockOptions lockOptions) {
132
130
default String generateUpdateLockString (LockOptions lockOptions ) {
133
131
final SessionFactoryImplementor factory = getFactory ();
134
132
final Update update = new Update ( factory );
135
- update .setTableName ( getRootTableName () );
136
- update .addAssignment ( getVersionColumnName () );
137
- update .addRestriction ( getRootTableIdentifierColumnNames () );
138
- update .addRestriction ( getVersionColumnName () );
133
+ update .setTableName ( getEntityMappingType (). getMappedTableDetails (). getTableName () );
134
+ update .addAssignment ( getVersionMapping (). getVersionAttribute (). getAttributeName () );
135
+ update .addRestriction ( getIdentifierPropertyName () );
136
+ update .addRestriction ( getVersionMapping (). getVersionAttribute (). getAttributeName () );
139
137
if ( factory .getSessionFactoryOptions ().isCommentsEnabled () ) {
140
138
update .setComment ( lockOptions .getLockMode () + " lock " + getEntityName () );
141
139
}
@@ -261,8 +259,7 @@ default Object nextVersionForLock(LockMode lockMode, Object id, Object currentVe
261
259
262
260
@ Override
263
261
default CompletionStage <Object []> reactiveGetDatabaseSnapshot (Object id , SharedSessionContractImplementor session ) {
264
- ReactiveSingleIdEntityLoader <?> reactiveSingleIdEntityLoader = getReactiveSingleIdEntityLoader ();
265
- return reactiveSingleIdEntityLoader .reactiveLoadDatabaseSnapshot ( id , session );
262
+ return getReactiveSingleIdEntityLoader ().reactiveLoadDatabaseSnapshot ( id , session );
266
263
}
267
264
268
265
default ReactiveSingleIdEntityLoader <?> getReactiveSingleIdEntityLoader () {
@@ -327,7 +324,7 @@ else if ( result instanceof PersistentCollection ) {
327
324
final String [] propertyNames = getPropertyNames ();
328
325
for ( int index =0 ; index <propertyNames .length ; index ++ ) {
329
326
if ( propertyNames [index ].equals ( field ) ) {
330
- setPropertyValue ( entity , index , result );
327
+ setValue ( entity , index , result );
331
328
break ;
332
329
}
333
330
}
@@ -367,10 +364,10 @@ default CompletionStage<Object> reactiveInitializeLazyPropertiesFromDatastore(
367
364
368
365
LOG .tracef ( "Initializing lazy properties from datastore (triggered for `%s`)" , fieldName );
369
366
370
- final String fetchGroup = getEntityMetamodel ().getBytecodeEnhancementMetadata ()
367
+ final String fetchGroup = getEntityPersister ().getBytecodeEnhancementMetadata ()
371
368
.getLazyAttributesMetadata ()
372
369
.getFetchGroupName ( fieldName );
373
- final List <LazyAttributeDescriptor > fetchGroupAttributeDescriptors = getEntityMetamodel ().getBytecodeEnhancementMetadata ()
370
+ final List <LazyAttributeDescriptor > fetchGroupAttributeDescriptors = getEntityPersister ().getBytecodeEnhancementMetadata ()
374
371
.getLazyAttributesMetadata ()
375
372
.getFetchGroupAttributeDescriptors ( fetchGroup );
376
373
@@ -455,7 +452,7 @@ default CompletionStage<Object> reactiveInitializeEnhancedEntityUsedAsProxy(
455
452
String nameOfAttributeBeingAccessed ,
456
453
SharedSessionContractImplementor session ) {
457
454
458
- final BytecodeEnhancementMetadata enhancementMetadata = getEntityMetamodel ().getBytecodeEnhancementMetadata ();
455
+ final BytecodeEnhancementMetadata enhancementMetadata = getEntityPersister ().getBytecodeEnhancementMetadata ();
459
456
final BytecodeLazyAttributeInterceptor currentInterceptor = enhancementMetadata .extractLazyInterceptor ( entity );
460
457
if ( currentInterceptor instanceof EnhancementAsProxyLazinessInterceptor ) {
461
458
final EnhancementAsProxyLazinessInterceptor proxyInterceptor =
@@ -540,11 +537,11 @@ default NaturalIdMapping generateNaturalIdMapping(
540
537
//noinspection AssertWithSideEffects
541
538
assert bootEntityDescriptor .hasNaturalId ();
542
539
543
- final int [] naturalIdAttributeIndexes = getEntityMetamodel ().getNaturalIdentifierProperties ();
540
+ final int [] naturalIdAttributeIndexes = getEntityPersister ().getNaturalIdentifierProperties ();
544
541
assert naturalIdAttributeIndexes .length > 0 ;
545
542
546
543
if ( naturalIdAttributeIndexes .length == 1 ) {
547
- final String propertyName = getEntityMetamodel ().getPropertyNames ()[ naturalIdAttributeIndexes [0 ]] ;
544
+ final String propertyName = getEntityPersister ().getAttributeMappings (). get ( naturalIdAttributeIndexes [0 ]). getAttributeName () ;
548
545
final AttributeMapping attributeMapping = findAttributeMapping ( propertyName );
549
546
final SingularAttributeMapping singularAttributeMapping = (SingularAttributeMapping ) attributeMapping ;
550
547
return new ReactiveSimpleNaturalIdMapping ( singularAttributeMapping , this , creationProcess );
@@ -584,7 +581,7 @@ default NaturalIdLoader<?> getNaturalIdLoader() {
584
581
* @see AbstractEntityPersister#getLazyLoadPlanByFetchGroup()
585
582
*/
586
583
default Map <String , ReactiveSingleIdArrayLoadPlan > getLazyLoadPlanByFetchGroup (String [] subclassPropertyNameClosure ) {
587
- final BytecodeEnhancementMetadata metadata = delegate ().getEntityMetamodel ().getBytecodeEnhancementMetadata ();
584
+ final BytecodeEnhancementMetadata metadata = delegate ().getEntityPersister ().getBytecodeEnhancementMetadata ();
588
585
return metadata .isEnhancedForLazyLoading () && metadata .getLazyAttributesMetadata ().hasLazyAttributes ()
589
586
? createLazyLoadPlanByFetchGroup ( metadata , subclassPropertyNameClosure )
590
587
: emptyMap ();
@@ -626,7 +623,7 @@ default ReactiveSingleIdArrayLoadPlan createLazyLoadPlan(List<LazyAttributeDescr
626
623
getIdentifierMapping (),
627
624
null ,
628
625
1 ,
629
- LoadQueryInfluencers . NONE ,
626
+ new LoadQueryInfluencers ( factory ) ,
630
627
LockOptions .NONE ,
631
628
jdbcParametersListBuilder ::add ,
632
629
factory
0 commit comments