Skip to content

Commit 0d12041

Browse files
committed
misc cleanups in the legacy id package
1 parent 5795ccf commit 0d12041

File tree

7 files changed

+109
-114
lines changed

7 files changed

+109
-114
lines changed

hibernate-core/src/main/java/org/hibernate/id/AbstractUUIDGenerator.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import org.hibernate.internal.util.BytesHelper;
1010

11+
import static java.lang.System.currentTimeMillis;
12+
1113
/**
1214
* The base class for identifier generators that use a UUID algorithm. This
1315
* class implements the algorithm, subclasses define the identifier
@@ -34,7 +36,7 @@ public abstract class AbstractUUIDGenerator implements IdentifierGenerator {
3436
}
3537

3638
private static short counter = (short) 0;
37-
private static final int JVM = (int) ( System.currentTimeMillis() >>> 8 );
39+
private static final int JVM = (int) ( currentTimeMillis() >>> 8 );
3840

3941
public AbstractUUIDGenerator() {
4042
}
@@ -72,10 +74,10 @@ protected int getIP() {
7274
* Unique down to millisecond
7375
*/
7476
protected short getHiTime() {
75-
return (short) ( System.currentTimeMillis() >>> 32 );
77+
return (short) ( currentTimeMillis() >>> 32 );
7678
}
7779

7880
protected int getLoTime() {
79-
return (int) System.currentTimeMillis();
81+
return (int) currentTimeMillis();
8082
}
8183
}

hibernate-core/src/main/java/org/hibernate/id/CompositeNestedGeneratedValueGenerator.java

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import java.util.ArrayList;
99
import java.util.List;
1010

11-
import org.hibernate.HibernateException;
1211
import org.hibernate.Internal;
1312
import org.hibernate.boot.model.relational.Database;
1413
import org.hibernate.boot.model.relational.ExportableProducer;
@@ -131,32 +130,9 @@ public void addGeneratedValuePlan(GenerationPlan plan) {
131130
}
132131

133132
@Override
134-
public Object generate(SharedSessionContractImplementor session, Object object) throws HibernateException {
133+
public Object generate(SharedSessionContractImplementor session, Object object) {
135134
final Object context = generationContextLocator.locateGenerationContext( session, object );
136-
137-
final List<Object> generatedValues = compositeType.isMutable() ?
138-
null :
139-
new ArrayList<>( generationPlans.size() );
140-
for ( GenerationPlan generationPlan : generationPlans ) {
141-
final BeforeExecutionGenerator generator = generationPlan.getGenerator();
142-
final Object generated;
143-
if ( generator.generatedBeforeExecution( object, session ) ) {
144-
final Object currentValue = generator.allowAssignedIdentifiers()
145-
? compositeType.getPropertyValue( context, generationPlan.getPropertyIndex(), session )
146-
: null;
147-
generated = generator.generate( session, object, currentValue, INSERT );
148-
}
149-
else {
150-
throw new IdentifierGenerationException( "Identity generation isn't supported for composite ids" );
151-
}
152-
if ( generatedValues != null ) {
153-
generatedValues.add( generated );
154-
}
155-
else {
156-
generationPlan.getInjector().set( context, generated );
157-
}
158-
}
159-
135+
final List<Object> generatedValues = generatedValues( session, object, context );
160136
if ( generatedValues != null) {
161137
final Object[] values = compositeType.getPropertyValues( context );
162138
for ( int i = 0; i < generatedValues.size(); i++ ) {
@@ -169,16 +145,41 @@ public Object generate(SharedSessionContractImplementor session, Object object)
169145
}
170146
}
171147

148+
private List<Object> generatedValues(SharedSessionContractImplementor session, Object object, Object context) {
149+
final List<Object> generatedValues =
150+
compositeType.isMutable()
151+
? null
152+
: new ArrayList<>( generationPlans.size() );
153+
for ( var generationPlan : generationPlans ) {
154+
final var generator = generationPlan.getGenerator();
155+
if ( !generator.generatedBeforeExecution( object, session ) ) {
156+
throw new IdentifierGenerationException( "Identity generation isn't supported for composite ids" );
157+
}
158+
final Object currentValue =
159+
generator.allowAssignedIdentifiers()
160+
? compositeType.getPropertyValue( context, generationPlan.getPropertyIndex(), session )
161+
: null;
162+
final Object generated = generator.generate( session, object, currentValue, INSERT );
163+
if ( generatedValues != null ) {
164+
generatedValues.add( generated );
165+
}
166+
else {
167+
generationPlan.getInjector().set( context, generated );
168+
}
169+
}
170+
return generatedValues;
171+
}
172+
172173
@Override
173174
public void registerExportables(Database database) {
174-
for ( GenerationPlan plan : generationPlans ) {
175+
for ( var plan : generationPlans ) {
175176
plan.registerExportables( database );
176177
}
177178
}
178179

179180
@Override
180181
public void initialize(SqlStringGenerationContext context) {
181-
for ( GenerationPlan plan : generationPlans ) {
182+
for ( var plan : generationPlans ) {
182183
plan.initialize( context );
183184
}
184185
}

hibernate-core/src/main/java/org/hibernate/id/GUIDGenerator.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,22 @@ public Object generate(SharedSessionContractImplementor session, Object obj) thr
3838
final String sql = session.getJdbcServices().getJdbcEnvironment().getDialect().getSelectGUIDString();
3939
try {
4040
final var jdbcCoordinator = session.getJdbcCoordinator();
41-
final var st = jdbcCoordinator.getStatementPreparer().prepareStatement( sql );
41+
final var statement = jdbcCoordinator.getStatementPreparer().prepareStatement( sql );
42+
final var resourceRegistry = jdbcCoordinator.getLogicalConnection().getResourceRegistry();
4243
try {
43-
final var rs = jdbcCoordinator.getResultSetReturn().extract( st, sql );
44+
final var resultSet = jdbcCoordinator.getResultSetReturn().extract( statement, sql );
4445
try {
45-
if ( !rs.next() ) {
46+
if ( !resultSet.next() ) {
4647
throw new HibernateException( "The database returned no GUID identity value" );
4748
}
48-
return rs.getString( 1 );
49+
return resultSet.getString( 1 );
4950
}
5051
finally {
51-
jdbcCoordinator.getLogicalConnection().getResourceRegistry().release( rs, st );
52+
resourceRegistry.release( resultSet, statement );
5253
}
5354
}
5455
finally {
55-
jdbcCoordinator.getLogicalConnection().getResourceRegistry().release( st );
56+
resourceRegistry.release( statement );
5657
jdbcCoordinator.afterStatementExecution();
5758
}
5859
}

hibernate-core/src/main/java/org/hibernate/id/IdentifierGeneratorHelper.java

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.hibernate.persister.entity.EntityPersister;
2828
import org.hibernate.service.ServiceRegistry;
2929
import org.hibernate.type.EntityType;
30-
import org.hibernate.type.Type;
3130

3231
import static org.hibernate.cfg.MappingSettings.ID_DB_STRUCTURE_NAMING_STRATEGY;
3332
import static org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved;
@@ -83,7 +82,7 @@ else if ( integralType == BigDecimal.class ) {
8382

8483
public static Object getForeignId(
8584
String entityName, String propertyName, SharedSessionContractImplementor sessionImplementor, Object object) {
86-
final EntityPersister entityDescriptor =
85+
final var persister =
8786
sessionImplementor.getFactory().getMappingMetamodel()
8887
.getEntityDescriptor( entityName );
8988
if ( sessionImplementor instanceof SessionImplementor statefulSession
@@ -93,8 +92,8 @@ public static Object getForeignId(
9392
//throw new IdentifierGenerationException("save associated object first, or disable cascade for inverse association");
9493
}
9594
else {
96-
return identifier( sessionImplementor, entityType( propertyName, entityDescriptor ),
97-
associatedEntity( entityName, propertyName, object, entityDescriptor ) );
95+
return identifier( sessionImplementor, entityType( propertyName, persister ),
96+
associatedEntity( entityName, propertyName, object, persister ) );
9897
}
9998
}
10099

@@ -109,19 +108,19 @@ private static Object associatedEntity(
109108
}
110109

111110
private static Object identifier(
112-
SharedSessionContractImplementor sessionImplementor,
111+
SharedSessionContractImplementor session,
113112
EntityType foreignValueSourceType,
114113
Object associatedEntity) {
115114
final String associatedEntityName = foreignValueSourceType.getAssociatedEntityName();
116115
try {
117-
return getEntityIdentifierIfNotUnsaved( associatedEntityName, associatedEntity, sessionImplementor );
116+
return getEntityIdentifierIfNotUnsaved( associatedEntityName, associatedEntity, session );
118117
}
119118
catch (TransientObjectException toe) {
120-
if ( sessionImplementor instanceof Session statefulSession ) {
119+
if ( session instanceof Session statefulSession ) {
121120
statefulSession.persist( associatedEntityName, associatedEntity );
122-
return sessionImplementor.getContextEntityIdentifier( associatedEntity );
121+
return session.getContextEntityIdentifier( associatedEntity );
123122
}
124-
else if ( sessionImplementor instanceof StatelessSession statelessSession ) {
123+
else if ( session instanceof StatelessSession statelessSession ) {
125124
return statelessSession.insert( associatedEntityName, associatedEntity );
126125
}
127126
else {
@@ -131,10 +130,9 @@ else if ( sessionImplementor instanceof StatelessSession statelessSession ) {
131130
}
132131

133132
private static EntityType entityType(String propertyName, EntityPersister entityDescriptor) {
134-
final Type propertyType = entityDescriptor.getPropertyType( propertyName );
135-
if ( propertyType instanceof EntityType ) {
133+
if ( entityDescriptor.getPropertyType( propertyName ) instanceof EntityType entityType ) {
136134
// the normal case
137-
return (EntityType) propertyType;
135+
return entityType;
138136
}
139137
else {
140138
// try identifier mapper
@@ -246,7 +244,7 @@ public boolean gt(long value) {
246244
}
247245

248246
public IntegralDataTypeHolder copy() {
249-
BasicHolder copy = new BasicHolder( exactType );
247+
final var copy = new BasicHolder( exactType );
250248
copy.value = value;
251249
return copy;
252250
}
@@ -301,14 +299,16 @@ public String toString() {
301299
}
302300

303301
@Override
304-
public boolean equals(Object o) {
305-
if ( this == o ) {
302+
public boolean equals(Object object) {
303+
if ( this == object ) {
306304
return true;
307305
}
308-
if ( !(o instanceof BasicHolder that) ) {
306+
else if ( !(object instanceof BasicHolder that) ) {
309307
return false;
310308
}
311-
return value == that.value;
309+
else {
310+
return this.value == that.value;
311+
}
312312
}
313313

314314
@Override
@@ -326,7 +326,7 @@ public IntegralDataTypeHolder initialize(long value) {
326326
}
327327

328328
public IntegralDataTypeHolder initialize(ResultSet resultSet, long defaultValue) throws SQLException {
329-
final BigDecimal rsValue = resultSet.getBigDecimal( 1 );
329+
final var rsValue = resultSet.getBigDecimal( 1 );
330330
if ( resultSet.wasNull() ) {
331331
return initialize( defaultValue );
332332
}
@@ -411,7 +411,7 @@ public boolean gt(long value) {
411411
}
412412

413413
public IntegralDataTypeHolder copy() {
414-
BigIntegerHolder copy = new BigIntegerHolder();
414+
final var copy = new BigIntegerHolder();
415415
copy.value = value;
416416
return copy;
417417
}
@@ -457,14 +457,16 @@ public String toString() {
457457
}
458458

459459
@Override
460-
public boolean equals(Object o) {
461-
if ( this == o ) {
460+
public boolean equals(Object object) {
461+
if ( this == object ) {
462462
return true;
463463
}
464-
if ( !(o instanceof BigIntegerHolder that) ) {
464+
else if ( !(object instanceof BigIntegerHolder that) ) {
465465
return false;
466466
}
467-
return Objects.equals( value, that.value );
467+
else {
468+
return Objects.equals( this.value, that.value );
469+
}
468470
}
469471

470472
@Override
@@ -482,7 +484,7 @@ public IntegralDataTypeHolder initialize(long value) {
482484
}
483485

484486
public IntegralDataTypeHolder initialize(ResultSet resultSet, long defaultValue) throws SQLException {
485-
final BigDecimal rsValue = resultSet.getBigDecimal( 1 );
487+
final var rsValue = resultSet.getBigDecimal( 1 );
486488
if ( resultSet.wasNull() ) {
487489
return initialize( defaultValue );
488490
}
@@ -567,7 +569,7 @@ public boolean gt(long value) {
567569
}
568570

569571
public IntegralDataTypeHolder copy() {
570-
BigDecimalHolder copy = new BigDecimalHolder();
572+
final var copy = new BigDecimalHolder();
571573
copy.value = value;
572574
return copy;
573575
}
@@ -613,14 +615,16 @@ public String toString() {
613615
}
614616

615617
@Override
616-
public boolean equals(Object o) {
617-
if ( this == o ) {
618+
public boolean equals(Object object) {
619+
if ( this == object ) {
618620
return true;
619621
}
620-
if ( !(o instanceof BigDecimalHolder that) ) {
622+
else if ( !(object instanceof BigDecimalHolder that) ) {
621623
return false;
622624
}
623-
return Objects.equals( this.value, that.value );
625+
else {
626+
return Objects.equals( this.value, that.value );
627+
}
624628
}
625629

626630
@Override
@@ -630,8 +634,6 @@ public int hashCode() {
630634
}
631635

632636
public static ImplicitDatabaseObjectNamingStrategy getNamingStrategy(Properties params, ServiceRegistry serviceRegistry) {
633-
final StrategySelector strategySelector = serviceRegistry.requireService( StrategySelector.class );
634-
635637
final String namingStrategySetting = coalesceSuppliedValues(
636638
() -> {
637639
final String localSetting = getString( ID_DB_STRUCTURE_NAMING_STRATEGY, params );
@@ -641,17 +643,17 @@ public static ImplicitDatabaseObjectNamingStrategy getNamingStrategy(Properties
641643
return localSetting;
642644
},
643645
() -> {
644-
final ConfigurationService configurationService = serviceRegistry.requireService( ConfigurationService.class );
645-
final String globalSetting = getString( ID_DB_STRUCTURE_NAMING_STRATEGY, configurationService.getSettings() );
646+
final var settings = serviceRegistry.requireService( ConfigurationService.class ).getSettings();
647+
final String globalSetting = getString( ID_DB_STRUCTURE_NAMING_STRATEGY, settings );
646648
if ( globalSetting != null ) {
647649
INCUBATION_LOGGER.incubatingSetting( ID_DB_STRUCTURE_NAMING_STRATEGY );
648650
}
649651
return globalSetting;
650652
},
651653
StandardNamingStrategy.class::getName
652654
);
653-
654-
return strategySelector.resolveStrategy( ImplicitDatabaseObjectNamingStrategy.class, namingStrategySetting );
655+
return serviceRegistry.requireService( StrategySelector.class )
656+
.resolveStrategy( ImplicitDatabaseObjectNamingStrategy.class, namingStrategySetting );
655657
}
656658

657659
/**

hibernate-core/src/main/java/org/hibernate/id/IdentityGenerator.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,13 @@
44
*/
55
package org.hibernate.id;
66

7-
import java.util.List;
8-
9-
import org.hibernate.boot.spi.SessionFactoryOptions;
107
import org.hibernate.dialect.Dialect;
118
import org.hibernate.generator.OnExecutionGenerator;
129
import org.hibernate.id.insert.BasicSelectingDelegate;
1310
import org.hibernate.id.insert.GetGeneratedKeysDelegate;
1411
import org.hibernate.id.insert.InsertGeneratedIdentifierDelegate;
1512
import org.hibernate.id.insert.InsertReturningDelegate;
1613
import org.hibernate.id.insert.UniqueKeySelectingDelegate;
17-
import org.hibernate.metamodel.mapping.ModelPart;
1814
import org.hibernate.persister.entity.EntityPersister;
1915

2016
import static org.hibernate.generator.EventType.INSERT;
@@ -54,9 +50,9 @@ public String[] getReferencedColumnValues(Dialect dialect) {
5450

5551
@Override
5652
public InsertGeneratedIdentifierDelegate getGeneratedIdentifierDelegate(EntityPersister persister) {
57-
final Dialect dialect = persister.getFactory().getJdbcServices().getDialect();
58-
final SessionFactoryOptions sessionFactoryOptions = persister.getFactory().getSessionFactoryOptions();
59-
final List<? extends ModelPart> generatedProperties = persister.getGeneratedProperties( INSERT );
53+
final var dialect = persister.getFactory().getJdbcServices().getDialect();
54+
final var sessionFactoryOptions = persister.getFactory().getSessionFactoryOptions();
55+
final var generatedProperties = persister.getGeneratedProperties( INSERT );
6056
if ( generatedProperties.size() == 1 && sessionFactoryOptions.isGetGeneratedKeysEnabled() ) {
6157
// Use Connection#prepareStatement(sql, Statement.RETURN_GENERATED_KEYS) when only retrieving identity
6258
assert generatedProperties.get( 0 ).isEntityIdentifierMapping();

0 commit comments

Comments
 (0)