Skip to content

Commit e887b32

Browse files
committed
HHH-19440 - Deprecate exposing of LockOptions
1 parent bfc7b88 commit e887b32

File tree

17 files changed

+232
-208
lines changed

17 files changed

+232
-208
lines changed

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/CockroachLegacyDialect.java

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,28 @@
44
*/
55
package org.hibernate.community.dialect;
66

7-
import java.sql.DatabaseMetaData;
8-
import java.sql.ResultSet;
9-
import java.sql.SQLException;
10-
import java.sql.Types;
11-
import java.time.temporal.ChronoField;
12-
import java.time.temporal.TemporalAccessor;
13-
import java.util.Calendar;
14-
import java.util.Date;
15-
import java.util.Map;
16-
import java.util.TimeZone;
17-
import java.util.regex.Matcher;
18-
import java.util.regex.Pattern;
19-
7+
import jakarta.persistence.GenerationType;
8+
import jakarta.persistence.TemporalType;
209
import org.checkerframework.checker.nullness.qual.Nullable;
2110
import org.hibernate.LockMode;
2211
import org.hibernate.LockOptions;
2312
import org.hibernate.PessimisticLockException;
2413
import org.hibernate.QueryTimeoutException;
14+
import org.hibernate.Timeouts;
2515
import org.hibernate.boot.model.FunctionContributions;
2616
import org.hibernate.boot.model.TypeContributions;
27-
import org.hibernate.dialect.*;
17+
import org.hibernate.dialect.DatabaseVersion;
18+
import org.hibernate.dialect.Dialect;
19+
import org.hibernate.dialect.DmlTargetColumnQualifierSupport;
20+
import org.hibernate.dialect.FunctionalDependencyAnalysisSupport;
21+
import org.hibernate.dialect.FunctionalDependencyAnalysisSupportImpl;
22+
import org.hibernate.dialect.NationalizationSupport;
23+
import org.hibernate.dialect.NullOrdering;
24+
import org.hibernate.dialect.PostgreSQLDriverKind;
25+
import org.hibernate.dialect.RowLockStrategy;
26+
import org.hibernate.dialect.SimpleDatabaseVersion;
27+
import org.hibernate.dialect.SpannerDialect;
28+
import org.hibernate.dialect.TimeZoneSupport;
2829
import org.hibernate.dialect.aggregate.AggregateSupport;
2930
import org.hibernate.dialect.aggregate.CockroachDBAggregateSupport;
3031
import org.hibernate.dialect.function.CommonFunctionFactory;
@@ -58,9 +59,8 @@
5859
import org.hibernate.internal.util.JdbcExceptionHelper;
5960
import org.hibernate.internal.util.StringHelper;
6061
import org.hibernate.query.SemanticException;
61-
import org.hibernate.query.sqm.IntervalType;
62-
import org.hibernate.dialect.NullOrdering;
6362
import org.hibernate.query.common.TemporalUnit;
63+
import org.hibernate.query.sqm.IntervalType;
6464
import org.hibernate.query.sqm.produce.function.StandardFunctionArgumentTypeResolvers;
6565
import org.hibernate.service.ServiceRegistry;
6666
import org.hibernate.sql.ast.SqlAstTranslator;
@@ -83,9 +83,18 @@
8383
import org.hibernate.type.descriptor.sql.spi.DdlTypeRegistry;
8484
import org.hibernate.type.spi.TypeConfiguration;
8585

86-
87-
import jakarta.persistence.GenerationType;
88-
import jakarta.persistence.TemporalType;
86+
import java.sql.DatabaseMetaData;
87+
import java.sql.ResultSet;
88+
import java.sql.SQLException;
89+
import java.sql.Types;
90+
import java.time.temporal.ChronoField;
91+
import java.time.temporal.TemporalAccessor;
92+
import java.util.Calendar;
93+
import java.util.Date;
94+
import java.util.Map;
95+
import java.util.TimeZone;
96+
import java.util.regex.Matcher;
97+
import java.util.regex.Pattern;
8998

9099
import static org.hibernate.exception.spi.TemplatedViolatedConstraintNameExtractor.extractUsingTemplate;
91100
import static org.hibernate.query.common.TemporalUnit.DAY;
@@ -1011,8 +1020,8 @@ public String getForUpdateString(String aliases, LockOptions lockOptions) {
10111020

10121021
private String withTimeout(String lockString, int timeout) {
10131022
return switch ( timeout ) {
1014-
case LockOptions.NO_WAIT -> supportsNoWait() ? lockString + " nowait" : lockString;
1015-
case LockOptions.SKIP_LOCKED -> supportsSkipLocked() ? lockString + " skip locked" : lockString;
1023+
case Timeouts.NO_WAIT_MILLI -> supportsNoWait() ? lockString + " nowait" : lockString;
1024+
case Timeouts.SKIP_LOCKED_MILLI -> supportsSkipLocked() ? lockString + " skip locked" : lockString;
10161025
default -> lockString;
10171026
};
10181027
}

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/DB2LegacyDialect.java

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,13 @@
44
*/
55
package org.hibernate.community.dialect;
66

7-
import java.sql.CallableStatement;
8-
import java.sql.DatabaseMetaData;
9-
import java.sql.ResultSet;
10-
import java.sql.SQLException;
11-
import java.sql.Types;
12-
import java.time.Instant;
13-
import java.time.LocalDate;
14-
import java.time.LocalDateTime;
15-
import java.time.LocalTime;
16-
import java.time.OffsetDateTime;
17-
import java.time.OffsetTime;
18-
import java.time.ZonedDateTime;
19-
import java.time.temporal.TemporalAccessor;
20-
import java.util.Calendar;
21-
import java.util.Date;
22-
import java.util.List;
23-
import java.util.TimeZone;
24-
25-
import org.hibernate.LockOptions;
7+
import jakarta.persistence.TemporalType;
8+
import org.hibernate.Timeouts;
269
import org.hibernate.boot.model.FunctionContributions;
2710
import org.hibernate.boot.model.TypeContributions;
2811
import org.hibernate.community.dialect.sequence.LegacyDB2SequenceSupport;
2912
import org.hibernate.dialect.DB2Dialect;
3013
import org.hibernate.dialect.DB2GetObjectExtractor;
31-
import org.hibernate.dialect.type.DB2StructJdbcType;
3214
import org.hibernate.dialect.DatabaseVersion;
3315
import org.hibernate.dialect.Dialect;
3416
import org.hibernate.dialect.DmlTargetColumnQualifierSupport;
@@ -49,6 +31,7 @@
4931
import org.hibernate.dialect.pagination.LimitHandler;
5032
import org.hibernate.dialect.sequence.DB2SequenceSupport;
5133
import org.hibernate.dialect.sequence.SequenceSupport;
34+
import org.hibernate.dialect.type.DB2StructJdbcType;
5235
import org.hibernate.dialect.unique.AlterTableUniqueIndexDelegate;
5336
import org.hibernate.dialect.unique.SkipNullableUniqueDelegate;
5437
import org.hibernate.dialect.unique.UniqueDelegate;
@@ -70,9 +53,9 @@
7053
import org.hibernate.metamodel.spi.RuntimeModelCreationContext;
7154
import org.hibernate.procedure.internal.DB2CallableStatementSupport;
7255
import org.hibernate.procedure.spi.CallableStatementSupport;
56+
import org.hibernate.query.common.TemporalUnit;
7357
import org.hibernate.query.sqm.CastType;
7458
import org.hibernate.query.sqm.IntervalType;
75-
import org.hibernate.query.common.TemporalUnit;
7659
import org.hibernate.query.sqm.mutation.internal.cte.CteInsertStrategy;
7760
import org.hibernate.query.sqm.mutation.internal.cte.CteMutationStrategy;
7861
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy;
@@ -118,7 +101,23 @@
118101
import org.hibernate.type.descriptor.sql.spi.DdlTypeRegistry;
119102
import org.hibernate.type.spi.TypeConfiguration;
120103

121-
import jakarta.persistence.TemporalType;
104+
import java.sql.CallableStatement;
105+
import java.sql.DatabaseMetaData;
106+
import java.sql.ResultSet;
107+
import java.sql.SQLException;
108+
import java.sql.Types;
109+
import java.time.Instant;
110+
import java.time.LocalDate;
111+
import java.time.LocalDateTime;
112+
import java.time.LocalTime;
113+
import java.time.OffsetDateTime;
114+
import java.time.OffsetTime;
115+
import java.time.ZonedDateTime;
116+
import java.time.temporal.TemporalAccessor;
117+
import java.util.Calendar;
118+
import java.util.Date;
119+
import java.util.List;
120+
import java.util.TimeZone;
122121

123122
import static org.hibernate.exception.spi.TemplatedViolatedConstraintNameExtractor.extractUsingTemplate;
124123
import static org.hibernate.type.SqlTypes.BINARY;
@@ -783,14 +782,14 @@ public String getForUpdateSkipLockedString(String aliases) {
783782

784783
@Override
785784
public String getWriteLockString(int timeout) {
786-
return timeout == LockOptions.SKIP_LOCKED && supportsSkipLocked()
785+
return timeout == Timeouts.SKIP_LOCKED_MILLI && supportsSkipLocked()
787786
? FOR_UPDATE_SKIP_LOCKED_SQL
788787
: FOR_UPDATE_SQL;
789788
}
790789

791790
@Override
792791
public String getReadLockString(int timeout) {
793-
return timeout == LockOptions.SKIP_LOCKED && supportsSkipLocked()
792+
return timeout == Timeouts.SKIP_LOCKED_MILLI && supportsSkipLocked()
794793
? FOR_SHARE_SKIP_LOCKED_SQL
795794
: FOR_SHARE_SQL;
796795
}

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/HANALegacyDialect.java

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,11 @@
44
*/
55
package org.hibernate.community.dialect;
66

7-
import java.io.ByteArrayInputStream;
8-
import java.io.ByteArrayOutputStream;
9-
import java.io.FilterInputStream;
10-
import java.io.FilterReader;
11-
import java.io.IOException;
12-
import java.io.InputStream;
13-
import java.io.OutputStream;
14-
import java.io.Reader;
15-
import java.io.StringReader;
16-
import java.io.Writer;
17-
import java.nio.charset.StandardCharsets;
18-
import java.sql.Blob;
19-
import java.sql.CallableStatement;
20-
import java.sql.Clob;
21-
import java.sql.DatabaseMetaData;
22-
import java.sql.NClob;
23-
import java.sql.PreparedStatement;
24-
import java.sql.ResultSet;
25-
import java.sql.SQLException;
26-
import java.sql.SQLFeatureNotSupportedException;
27-
import java.sql.Types;
28-
import java.time.temporal.TemporalAccessor;
29-
import java.util.Arrays;
30-
import java.util.Date;
31-
import java.util.HashSet;
32-
import java.util.List;
33-
import java.util.Map;
34-
import java.util.Set;
35-
import java.util.TimeZone;
36-
import java.util.regex.Matcher;
37-
import java.util.regex.Pattern;
38-
7+
import jakarta.persistence.TemporalType;
398
import org.hibernate.LockMode;
409
import org.hibernate.LockOptions;
4110
import org.hibernate.ScrollMode;
11+
import org.hibernate.Timeouts;
4212
import org.hibernate.boot.Metadata;
4313
import org.hibernate.boot.model.FunctionContributions;
4414
import org.hibernate.boot.model.TypeContributions;
@@ -48,7 +18,6 @@
4818
import org.hibernate.dialect.Dialect;
4919
import org.hibernate.dialect.DmlTargetColumnQualifierSupport;
5020
import org.hibernate.dialect.HANAServerConfiguration;
51-
import org.hibernate.dialect.sql.ast.HANASqlAstTranslator;
5221
import org.hibernate.dialect.NullOrdering;
5322
import org.hibernate.dialect.OracleDialect;
5423
import org.hibernate.dialect.RowLockStrategy;
@@ -62,6 +31,7 @@
6231
import org.hibernate.dialect.pagination.LimitOffsetLimitHandler;
6332
import org.hibernate.dialect.sequence.HANASequenceSupport;
6433
import org.hibernate.dialect.sequence.SequenceSupport;
34+
import org.hibernate.dialect.sql.ast.HANASqlAstTranslator;
6535
import org.hibernate.dialect.temptable.TemporaryTable;
6636
import org.hibernate.dialect.temptable.TemporaryTableKind;
6737
import org.hibernate.engine.config.spi.ConfigurationService;
@@ -131,7 +101,37 @@
131101
import org.hibernate.type.internal.BasicTypeImpl;
132102
import org.hibernate.type.spi.TypeConfiguration;
133103

134-
import jakarta.persistence.TemporalType;
104+
import java.io.ByteArrayInputStream;
105+
import java.io.ByteArrayOutputStream;
106+
import java.io.FilterInputStream;
107+
import java.io.FilterReader;
108+
import java.io.IOException;
109+
import java.io.InputStream;
110+
import java.io.OutputStream;
111+
import java.io.Reader;
112+
import java.io.StringReader;
113+
import java.io.Writer;
114+
import java.nio.charset.StandardCharsets;
115+
import java.sql.Blob;
116+
import java.sql.CallableStatement;
117+
import java.sql.Clob;
118+
import java.sql.DatabaseMetaData;
119+
import java.sql.NClob;
120+
import java.sql.PreparedStatement;
121+
import java.sql.ResultSet;
122+
import java.sql.SQLException;
123+
import java.sql.SQLFeatureNotSupportedException;
124+
import java.sql.Types;
125+
import java.time.temporal.TemporalAccessor;
126+
import java.util.Arrays;
127+
import java.util.Date;
128+
import java.util.HashSet;
129+
import java.util.List;
130+
import java.util.Map;
131+
import java.util.Set;
132+
import java.util.TimeZone;
133+
import java.util.regex.Matcher;
134+
import java.util.regex.Pattern;
135135

136136
import static org.hibernate.dialect.HANAServerConfiguration.MAX_LOB_PREFETCH_SIZE_DEFAULT_VALUE;
137137
import static org.hibernate.query.sqm.produce.function.FunctionParameterType.ANY;
@@ -1007,7 +1007,7 @@ public String getWriteLockString(int timeout) {
10071007
if ( timeout > 0 ) {
10081008
return getForUpdateString() + " wait " + getTimeoutInSeconds( timeout );
10091009
}
1010-
else if ( timeout == 0 ) {
1010+
else if ( timeout == Timeouts.NO_WAIT_MILLI ) {
10111011
return getForUpdateNowaitString();
10121012
}
10131013
else {

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/MySQLLegacyDialect.java

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,25 @@
44
*/
55
package org.hibernate.community.dialect;
66

7-
import java.sql.CallableStatement;
8-
import java.sql.DatabaseMetaData;
9-
import java.sql.ResultSet;
10-
import java.sql.SQLException;
11-
import java.sql.Types;
12-
13-
import org.hibernate.LockOptions;
7+
import jakarta.persistence.TemporalType;
148
import org.hibernate.PessimisticLockException;
9+
import org.hibernate.Timeouts;
1510
import org.hibernate.boot.model.FunctionContributions;
1611
import org.hibernate.boot.model.TypeContributions;
1712
import org.hibernate.cfg.Environment;
18-
import org.hibernate.dialect.*;
13+
import org.hibernate.dialect.DatabaseVersion;
14+
import org.hibernate.dialect.Dialect;
15+
import org.hibernate.dialect.DmlTargetColumnQualifierSupport;
16+
import org.hibernate.dialect.FunctionalDependencyAnalysisSupport;
17+
import org.hibernate.dialect.FunctionalDependencyAnalysisSupportImpl;
18+
import org.hibernate.dialect.InnoDBStorageEngine;
19+
import org.hibernate.dialect.MyISAMStorageEngine;
20+
import org.hibernate.dialect.MySQLServerConfiguration;
21+
import org.hibernate.dialect.MySQLStorageEngine;
22+
import org.hibernate.dialect.NullOrdering;
23+
import org.hibernate.dialect.Replacer;
24+
import org.hibernate.dialect.RowLockStrategy;
25+
import org.hibernate.dialect.SelectItemReferenceStrategy;
1926
import org.hibernate.dialect.aggregate.AggregateSupport;
2027
import org.hibernate.dialect.aggregate.MySQLAggregateSupport;
2128
import org.hibernate.dialect.function.CommonFunctionFactory;
@@ -46,15 +53,14 @@
4653
import org.hibernate.mapping.CheckConstraint;
4754
import org.hibernate.metamodel.mapping.EntityMappingType;
4855
import org.hibernate.metamodel.spi.RuntimeModelCreationContext;
56+
import org.hibernate.query.common.TemporalUnit;
4957
import org.hibernate.query.sqm.CastType;
5058
import org.hibernate.query.sqm.IntervalType;
51-
import org.hibernate.dialect.NullOrdering;
52-
import org.hibernate.query.common.TemporalUnit;
5359
import org.hibernate.query.sqm.function.SqmFunctionRegistry;
54-
import org.hibernate.query.sqm.mutation.spi.AfterUseAction;
55-
import org.hibernate.query.sqm.mutation.spi.BeforeUseAction;
5660
import org.hibernate.query.sqm.mutation.internal.temptable.LocalTemporaryTableInsertStrategy;
5761
import org.hibernate.query.sqm.mutation.internal.temptable.LocalTemporaryTableMutationStrategy;
62+
import org.hibernate.query.sqm.mutation.spi.AfterUseAction;
63+
import org.hibernate.query.sqm.mutation.spi.BeforeUseAction;
5864
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableInsertStrategy;
5965
import org.hibernate.query.sqm.mutation.spi.SqmMultiTableMutationStrategy;
6066
import org.hibernate.query.sqm.produce.function.FunctionParameterType;
@@ -79,7 +85,11 @@
7985
import org.hibernate.type.descriptor.sql.internal.NativeOrdinalEnumDdlTypeImpl;
8086
import org.hibernate.type.descriptor.sql.spi.DdlTypeRegistry;
8187

82-
import jakarta.persistence.TemporalType;
88+
import java.sql.CallableStatement;
89+
import java.sql.DatabaseMetaData;
90+
import java.sql.ResultSet;
91+
import java.sql.SQLException;
92+
import java.sql.Types;
8393

8494
import static org.hibernate.exception.spi.TemplatedViolatedConstraintNameExtractor.extractUsingTemplate;
8595
import static org.hibernate.type.SqlTypes.BIGINT;
@@ -1328,9 +1338,9 @@ public static Replacer datetimeFormat(String format) {
13281338

13291339
private String withTimeout(String lockString, int timeout) {
13301340
return switch ( timeout ) {
1331-
case LockOptions.NO_WAIT -> supportsNoWait() ? lockString + " nowait" : lockString;
1332-
case LockOptions.SKIP_LOCKED -> supportsSkipLocked() ? lockString + " skip locked" : lockString;
1333-
case LockOptions.WAIT_FOREVER -> lockString;
1341+
case Timeouts.NO_WAIT_MILLI -> supportsNoWait() ? lockString + " nowait" : lockString;
1342+
case Timeouts.SKIP_LOCKED_MILLI -> supportsSkipLocked() ? lockString + " skip locked" : lockString;
1343+
case Timeouts.WAIT_FOREVER_MILLI -> lockString;
13341344
default -> supportsWait() ? lockString + " wait " + getTimeoutInSeconds( timeout ) : lockString;
13351345
};
13361346
}

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/OracleLegacyDialect.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
import java.util.regex.Matcher;
1717
import java.util.regex.Pattern;
1818

19-
import org.hibernate.LockOptions;
2019
import org.hibernate.QueryTimeoutException;
20+
import org.hibernate.Timeouts;
2121
import org.hibernate.boot.model.FunctionContributions;
2222
import org.hibernate.boot.model.TypeContributions;
2323
import org.hibernate.dialect.BooleanDecoder;
@@ -1412,9 +1412,9 @@ public String getForUpdateSkipLockedString(String aliases) {
14121412

14131413
private String withTimeout(String lockString, int timeout) {
14141414
return switch ( timeout ) {
1415-
case LockOptions.NO_WAIT -> supportsNoWait() ? lockString + " nowait" : lockString;
1416-
case LockOptions.SKIP_LOCKED -> supportsSkipLocked() ? lockString + " skip locked" : lockString;
1417-
case LockOptions.WAIT_FOREVER -> lockString;
1415+
case Timeouts.NO_WAIT_MILLI -> supportsNoWait() ? lockString + " nowait" : lockString;
1416+
case Timeouts.SKIP_LOCKED_MILLI -> supportsSkipLocked() ? lockString + " skip locked" : lockString;
1417+
case Timeouts.WAIT_FOREVER_MILLI -> lockString;
14181418
default -> supportsWait() ? lockString + " wait " + getTimeoutInSeconds( timeout ) : lockString;
14191419
};
14201420
}

0 commit comments

Comments
 (0)