Skip to content

Commit 9d30d21

Browse files
committed
fix signature of Query.setOrder()
1 parent 538cad6 commit 9d30d21

File tree

16 files changed

+54
-63
lines changed

16 files changed

+54
-63
lines changed

hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureCallImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ public QueryParameterBindings getParameterBindings() {
413413
}
414414

415415
@Override
416-
public Query<R> setOrder(List<Order<? super R>> orderList) {
416+
public Query<R> setOrder(List<? extends Order<? super R>> orderList) {
417417
throw new UnsupportedOperationException("Ordering not supported for stored procedure calls");
418418
}
419419

hibernate-core/src/main/java/org/hibernate/query/Query.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,7 @@ default Query<R> setPage(Page page) {
922922
Query<R> setLockMode(LockModeType lockMode);
923923

924924
@Override @Incubating
925-
Query<R> setOrder(List<Order<? super R>> orderList);
925+
Query<R> setOrder(List<? extends Order<? super R>> orderList);
926926

927927
@Override @Incubating
928928
Query<R> setOrder(Order<? super R> order);

hibernate-core/src/main/java/org/hibernate/query/SelectionQuery.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ default Stream<R> stream() {
590590
* @since 6.3
591591
*/
592592
@Incubating
593-
SelectionQuery<R> setOrder(List<Order<? super R>> orderList);
593+
SelectionQuery<R> setOrder(List<? extends Order<? super R>> orderList);
594594

595595
/**
596596
* If the result type of this query is an entity class, add a

hibernate-core/src/main/java/org/hibernate/query/spi/AbstractQuery.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ public QueryImplementor<R> setLockMode(LockModeType lockModeType) {
295295
}
296296

297297
@Override
298-
public Query<R> setOrder(List<Order<? super R>> orders) {
298+
public Query<R> setOrder(List<? extends Order<? super R>> orders) {
299299
throw new UnsupportedOperationException( "Should be implemented by " + this.getClass().getName() );
300300
}
301301

hibernate-core/src/main/java/org/hibernate/query/sql/internal/NativeQueryImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1581,7 +1581,7 @@ public NativeQueryImplementor<R> setFirstResult(int startPosition) {
15811581
}
15821582

15831583
@Override
1584-
public Query<R> setOrder(List<Order<? super R>> orderList) {
1584+
public Query<R> setOrder(List<? extends Order<? super R>> orderList) {
15851585
throw new UnsupportedOperationException("Ordering not currently supported for native queries");
15861586
}
15871587

hibernate-core/src/main/java/org/hibernate/query/sqm/internal/AbstractSqmSelectionQuery.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,29 +122,26 @@ private SqmSelectStatement<R> getSqmSelectStatement() {
122122
}
123123

124124
@Override
125-
public SelectionQuery<R> setOrder(List<Order<? super R>> orderList) {
126-
SqmSelectStatement<R> sqm = getSqmSelectStatement();
127-
sqm = sqm.copy( noParamCopyContext() );
128-
final SqmSelectStatement<R> select = sqm;
129-
sqm.orderBy( orderList.stream().map( order -> sortSpecification( select, order ) )
125+
public SelectionQuery<R> setOrder(List<? extends Order<? super R>> orderList) {
126+
final SqmSelectStatement<R> selectStatement = getSqmSelectStatement().copy( noParamCopyContext() );
127+
selectStatement.orderBy( orderList.stream().map( order -> sortSpecification( selectStatement, order ) )
130128
.collect( toList() ) );
131129
// TODO: when the QueryInterpretationCache can handle caching criteria queries,
132130
// simply cache the new SQM as if it were a criteria query, and remove this:
133131
getQueryOptions().setQueryPlanCachingEnabled( false );
134-
setSqmStatement( sqm );
132+
setSqmStatement( selectStatement );
135133
return this;
136134
}
137135

138136

139137
@Override
140138
public SelectionQuery<R> setOrder(Order<? super R> order) {
141-
SqmSelectStatement<R> sqm = getSqmSelectStatement();
142-
sqm = sqm.copy( noParamCopyContext() );
143-
sqm.orderBy( sortSpecification( sqm, order ) );
139+
final SqmSelectStatement<R> selectStatement = getSqmSelectStatement().copy( noParamCopyContext() );
140+
selectStatement.orderBy( sortSpecification( selectStatement, order ) );
144141
// TODO: when the QueryInterpretationCache can handle caching criteria queries,
145142
// simply cache the new SQM as if it were a criteria query, and remove this:
146143
getQueryOptions().setQueryPlanCachingEnabled( false );
147-
setSqmStatement( sqm );
144+
setSqmStatement( selectStatement );
148145
return this;
149146
}
150147

hibernate-core/src/main/java/org/hibernate/query/sqm/internal/QuerySqmImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,7 @@ public Query<R> setOrder(Order<? super R> order) {
758758
}
759759

760760
@Override
761-
public Query<R> setOrder(List<Order<? super R>> orders) {
761+
public Query<R> setOrder(List<? extends Order<? super R>> orders) {
762762
super.setOrder(orders);
763763
return this;
764764
}

hibernate-core/src/main/java/org/hibernate/query/sqm/spi/DelegatingSqmSelectionQueryImplementor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ public SqmSelectionQueryImplementor<R> setLockMode(String alias, LockMode lockMo
295295

296296
@Override
297297
@Incubating
298-
public SqmSelectionQueryImplementor<R> setOrder(List<Order<? super R>> orders) {
298+
public SqmSelectionQueryImplementor<R> setOrder(List<? extends Order<? super R>> orders) {
299299
getDelegate().setOrder( orders );
300300
return this;
301301
}

hibernate-core/src/test/java/org/hibernate/orm/test/jpa/ejb3configuration/ConfigurationObjectSettingTest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.util.Collections;
88
import java.util.HashMap;
99
import java.util.Map;
10+
import java.util.Properties;
1011
import java.util.Set;
1112

1213
import org.hibernate.HibernateException;
@@ -216,6 +217,13 @@ public void testJdbcSettings() {
216217
);
217218
}
218219

220+
public static void applyToProperties(Properties properties, Object... pairs) {
221+
assert pairs.length % 2 == 0;
222+
for ( int i = 0; i < pairs.length; i+=2 ) {
223+
properties.put( pairs[i], pairs[i+1] );
224+
}
225+
}
226+
219227
private void verifyJdbcSettings(String jdbcUrl, String jdbcDriver, String jdbcUser, String jdbcPassword) {
220228
final String urlValue = "some:url";
221229
final String driverValue = "some.jdbc.Driver";
@@ -228,7 +236,7 @@ private void verifyJdbcSettings(String jdbcUrl, String jdbcDriver, String jdbcUs
228236
{
229237
builder = (EntityManagerFactoryBuilderImpl) Bootstrap.getEntityManagerFactoryBuilder(
230238
empty,
231-
CollectionHelper.toMap(
239+
Map.of(
232240
jdbcUrl, urlValue,
233241
jdbcDriver, driverValue,
234242
jdbcUser, userValue,
@@ -246,7 +254,7 @@ private void verifyJdbcSettings(String jdbcUrl, String jdbcDriver, String jdbcUs
246254
}
247255

248256
PersistenceUnitInfoAdapter pui = new PersistenceUnitInfoAdapter();
249-
CollectionHelper.applyToProperties(
257+
applyToProperties(
250258
pui.getProperties(),
251259
jdbcUrl, urlValue,
252260
jdbcDriver, driverValue,

hibernate-core/src/test/java/org/hibernate/orm/test/jpa/jakarta/JakartaSchemaToolingTests.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.hibernate.cfg.Environment;
1414
import org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl;
1515
import org.hibernate.engine.spi.SessionFactoryImplementor;
16-
import org.hibernate.internal.util.collections.CollectionHelper;
1716
import org.hibernate.jpa.boot.spi.Bootstrap;
1817
import org.hibernate.jpa.boot.spi.EntityManagerFactoryBuilder;
1918
import org.hibernate.tool.schema.Action;
@@ -137,6 +136,13 @@ public void sessionFactoryCreated(org.hibernate.SessionFactory factory) {
137136
}
138137
}
139138

139+
public static void applyToProperties(Properties properties, Object... pairs) {
140+
assert pairs.length % 2 == 0;
141+
for ( int i = 0; i < pairs.length; i+=2 ) {
142+
properties.put( pairs[i], pairs[i+1] );
143+
}
144+
}
145+
140146
private SessionFactoryImplementor buildSessionFactory(Object... settingPairs) {
141147
final Properties settings = new Properties();
142148
settings.setProperty( AvailableSettings.AUTOCOMMIT, "false" );
@@ -146,7 +152,7 @@ private SessionFactoryImplementor buildSessionFactory(Object... settingPairs) {
146152
DriverManagerConnectionProviderImpl.INIT_SQL,
147153
Environment.getProperties().getProperty( DriverManagerConnectionProviderImpl.INIT_SQL )
148154
);
149-
CollectionHelper.applyToProperties( settings, settingPairs );
155+
applyToProperties( settings, settingPairs );
150156
ServiceRegistryUtil.applySettings( settings );
151157

152158
final PersistenceUnitDescriptorAdapter puDescriptor = new PersistenceUnitDescriptorAdapter() {

0 commit comments

Comments
 (0)