diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/BasicDomainType.java b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/BasicDomainType.java
index b9d893848801..3db8f6e1a2f7 100644
--- a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/BasicDomainType.java
+++ b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/BasicDomainType.java
@@ -6,7 +6,7 @@
import jakarta.persistence.metamodel.BasicType;
-import org.hibernate.query.OutputableType;
+import org.hibernate.type.OutputableType;
/**
* Hibernate extension to the JPA {@link BasicType} contract.
diff --git a/hibernate-core/src/main/java/org/hibernate/procedure/ProcedureCall.java b/hibernate-core/src/main/java/org/hibernate/procedure/ProcedureCall.java
index 733194a04f53..7301cd92580a 100644
--- a/hibernate-core/src/main/java/org/hibernate/procedure/ProcedureCall.java
+++ b/hibernate-core/src/main/java/org/hibernate/procedure/ProcedureCall.java
@@ -16,10 +16,8 @@
import org.hibernate.MappingException;
import org.hibernate.query.SynchronizeableQuery;
-import org.hibernate.procedure.spi.NamedCallableQueryMemento;
import org.hibernate.query.CommonQueryContract;
import org.hibernate.query.procedure.ProcedureParameter;
-import org.hibernate.query.named.NameableQuery;
import org.hibernate.type.BasicTypeReference;
/**
@@ -32,10 +30,7 @@
*
* Unless explicitly specified, the ProcedureCall is assumed to follow the
* procedure call syntax. To explicitly specify that this should be a function
- * call, use {@link #markAsFunctionCall}. JPA users could either:
- * - use {@code storedProcedureQuery.unwrap( ProcedureCall.class }.markAsFunctionCall()
- * - set the {@link #FUNCTION_RETURN_TYPE_HINT} hint (avoids casting to Hibernate-specific classes)
- *
+ * call, use {@link #markAsFunctionCall}.
*
* When using function-call syntax:
* - parameters must be registered by position (not name)
@@ -56,12 +51,7 @@
* @author Steve Ebersole
*/
public interface ProcedureCall
- extends CommonQueryContract, SynchronizeableQuery, StoredProcedureQuery, NameableQuery, AutoCloseable {
- /**
- * The hint key (for use with JPA's "hint system") indicating the function's return JDBC type code
- * (aka, {@link java.sql.Types} code)
- */
- String FUNCTION_RETURN_TYPE_HINT = "hibernate.procedure.function_return_jdbc_type_code";
+ extends CommonQueryContract, SynchronizeableQuery, StoredProcedureQuery, AutoCloseable {
/**
* Get the name of the stored procedure (or function) to be called.
@@ -246,9 +236,6 @@ default void close() {
@Override
ProcedureCall addSynchronizedEntityClass(@SuppressWarnings("rawtypes") Class entityClass) throws MappingException;
- @Override
- NamedCallableQueryMemento toMemento(String name);
-
@Override
ProcedureCall setHint(String hintName, Object value);
@@ -287,4 +274,12 @@ default void close() {
@Override
ProcedureCall registerStoredProcedureParameter(String parameterName, Class> type, ParameterMode mode);
+
+ /**
+ * The hint key indicating the function's return {@linkplain java.sql.Types JDBC type code}.
+ *
+ * @deprecated This hint no longer has any effect. Use {@link #markAsFunctionCall(int)}.
+ */
+ @Deprecated(since="7", forRemoval = true)
+ String FUNCTION_RETURN_TYPE_HINT = "hibernate.procedure.function_return_jdbc_type_code";
}
diff --git a/hibernate-core/src/main/java/org/hibernate/procedure/internal/FunctionReturnImpl.java b/hibernate-core/src/main/java/org/hibernate/procedure/internal/FunctionReturnImpl.java
index a7510fa175be..ced2938499ac 100644
--- a/hibernate-core/src/main/java/org/hibernate/procedure/internal/FunctionReturnImpl.java
+++ b/hibernate-core/src/main/java/org/hibernate/procedure/internal/FunctionReturnImpl.java
@@ -11,7 +11,7 @@
import org.hibernate.procedure.spi.NamedCallableQueryMemento;
import org.hibernate.procedure.spi.ProcedureCallImplementor;
import org.hibernate.query.BindableType;
-import org.hibernate.query.OutputableType;
+import org.hibernate.type.OutputableType;
import org.hibernate.sql.exec.internal.JdbcCallFunctionReturnImpl.RefCurserJdbcCallFunctionReturnImpl;
import org.hibernate.sql.exec.internal.JdbcCallFunctionReturnImpl.RegularJdbcCallFunctionReturnImpl;
import org.hibernate.sql.exec.internal.JdbcCallParameterExtractorImpl;
diff --git a/hibernate-core/src/main/java/org/hibernate/procedure/internal/PostgreSQLCallableStatementSupport.java b/hibernate-core/src/main/java/org/hibernate/procedure/internal/PostgreSQLCallableStatementSupport.java
index d10e29c5d429..4a0b94ecdf64 100644
--- a/hibernate-core/src/main/java/org/hibernate/procedure/internal/PostgreSQLCallableStatementSupport.java
+++ b/hibernate-core/src/main/java/org/hibernate/procedure/internal/PostgreSQLCallableStatementSupport.java
@@ -11,7 +11,7 @@
import org.hibernate.procedure.spi.FunctionReturnImplementor;
import org.hibernate.procedure.spi.ProcedureCallImplementor;
import org.hibernate.procedure.spi.ProcedureParameterImplementor;
-import org.hibernate.query.OutputableType;
+import org.hibernate.type.OutputableType;
import org.hibernate.query.spi.ProcedureParameterMetadataImplementor;
import org.hibernate.sql.exec.internal.JdbcCallImpl;
import org.hibernate.sql.exec.spi.JdbcCallParameterRegistration;
diff --git a/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureCallImpl.java b/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureCallImpl.java
index 30f2072285e3..9adf56e0862a 100644
--- a/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureCallImpl.java
+++ b/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureCallImpl.java
@@ -44,7 +44,7 @@
import org.hibernate.query.BindableType;
import org.hibernate.query.KeyedPage;
import org.hibernate.query.KeyedResultList;
-import org.hibernate.query.OutputableType;
+import org.hibernate.type.OutputableType;
import org.hibernate.query.Query;
import org.hibernate.query.QueryParameter;
import org.hibernate.query.internal.QueryOptionsImpl;
diff --git a/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureParameterImpl.java b/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureParameterImpl.java
index 5b42a6b27a35..a933b160214d 100644
--- a/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureParameterImpl.java
+++ b/hibernate-core/src/main/java/org/hibernate/procedure/internal/ProcedureParameterImpl.java
@@ -15,7 +15,7 @@
import org.hibernate.procedure.spi.ProcedureCallImplementor;
import org.hibernate.procedure.spi.ProcedureParameterImplementor;
import org.hibernate.query.BindableType;
-import org.hibernate.query.OutputableType;
+import org.hibernate.type.OutputableType;
import org.hibernate.query.internal.BindingTypeHelper;
import org.hibernate.query.spi.AbstractQueryParameter;
import org.hibernate.query.spi.QueryParameterBinding;
diff --git a/hibernate-core/src/main/java/org/hibernate/procedure/spi/ProcedureCallImplementor.java b/hibernate-core/src/main/java/org/hibernate/procedure/spi/ProcedureCallImplementor.java
index 17ec506dec18..5bb60b94bce1 100644
--- a/hibernate-core/src/main/java/org/hibernate/procedure/spi/ProcedureCallImplementor.java
+++ b/hibernate-core/src/main/java/org/hibernate/procedure/spi/ProcedureCallImplementor.java
@@ -9,6 +9,7 @@
import java.util.List;
import org.hibernate.procedure.ProcedureCall;
+import org.hibernate.query.named.NameableQuery;
import org.hibernate.query.spi.ProcedureParameterMetadataImplementor;
import org.hibernate.query.spi.QueryImplementor;
import org.hibernate.type.BasicTypeReference;
@@ -23,7 +24,7 @@
/**
* @author Steve Ebersole
*/
-public interface ProcedureCallImplementor extends ProcedureCall, QueryImplementor {
+public interface ProcedureCallImplementor extends ProcedureCall, NameableQuery, QueryImplementor {
@Override
default List getResultList() {
return list();
@@ -93,4 +94,6 @@ default List getResultList() {
@Override
ProcedureCallImplementor registerStoredProcedureParameter(String parameterName, Class> type, ParameterMode mode);
+ @Override
+ NamedCallableQueryMemento toMemento(String name);
}
diff --git a/hibernate-core/src/main/java/org/hibernate/query/SelectionQuery.java b/hibernate-core/src/main/java/org/hibernate/query/SelectionQuery.java
index e4d29510aa52..eda176efed59 100644
--- a/hibernate-core/src/main/java/org/hibernate/query/SelectionQuery.java
+++ b/hibernate-core/src/main/java/org/hibernate/query/SelectionQuery.java
@@ -16,6 +16,7 @@
import jakarta.persistence.CacheRetrieveMode;
import jakarta.persistence.CacheStoreMode;
import jakarta.persistence.EntityGraph;
+
import org.hibernate.CacheMode;
import org.hibernate.FlushMode;
import org.hibernate.Incubating;
@@ -27,13 +28,11 @@
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.UnknownProfileException;
-import org.hibernate.dialect.Dialect;
import jakarta.persistence.FlushModeType;
import jakarta.persistence.LockModeType;
import jakarta.persistence.Parameter;
import jakarta.persistence.TemporalType;
-import org.hibernate.engine.profile.DefaultFetchProfile;
import org.hibernate.graph.GraphSemantic;
/**
@@ -95,9 +94,10 @@
*
*
* The special built-in fetch profile named
- * {@value DefaultFetchProfile#HIBERNATE_DEFAULT_PROFILE} adds a fetch join for
- * every {@link jakarta.persistence.FetchType#EAGER eager} {@code @ManyToOne} or
- * {@code @OneToOne} association belonging to an entity returned by the query.
+ * {@value org.hibernate.engine.profile.DefaultFetchProfile#HIBERNATE_DEFAULT_PROFILE}
+ * adds a fetch join for every {@link jakarta.persistence.FetchType#EAGER eager}
+ * {@code @ManyToOne} or {@code @OneToOne} association belonging to an entity
+ * returned by the query.
*
* Finally, three alternative approaches to pagination are available:
*
@@ -146,8 +146,8 @@ default List getResultList() {
/**
* Returns scrollable access to the query results, using the
- * {@linkplain Dialect#defaultScrollMode() default scroll mode
- * of the SQL dialect.}
+ * {@linkplain org.hibernate.dialect.Dialect#defaultScrollMode
+ * default scroll mode of the SQL dialect.}
*
* @see #scroll(ScrollMode)
*/
diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallFunctionReturnImpl.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallFunctionReturnImpl.java
index cdb10f2570fa..967b59b32f81 100644
--- a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallFunctionReturnImpl.java
+++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallFunctionReturnImpl.java
@@ -4,7 +4,7 @@
*/
package org.hibernate.sql.exec.internal;
-import org.hibernate.query.OutputableType;
+import org.hibernate.type.OutputableType;
import org.hibernate.sql.exec.spi.JdbcCallFunctionReturn;
import jakarta.persistence.ParameterMode;
diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallParameterExtractorImpl.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallParameterExtractorImpl.java
index a30556a74543..0e780740b7d5 100644
--- a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallParameterExtractorImpl.java
+++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallParameterExtractorImpl.java
@@ -8,7 +8,7 @@
import java.sql.SQLException;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
-import org.hibernate.query.OutputableType;
+import org.hibernate.type.OutputableType;
import org.hibernate.sql.exec.spi.JdbcCallParameterExtractor;
/**
diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallParameterRegistrationImpl.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallParameterRegistrationImpl.java
index 7c9c448cb153..d131b188dd22 100644
--- a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallParameterRegistrationImpl.java
+++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcCallParameterRegistrationImpl.java
@@ -9,7 +9,7 @@
import org.hibernate.engine.jdbc.cursor.spi.RefCursorSupport;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
-import org.hibernate.query.OutputableType;
+import org.hibernate.type.OutputableType;
import org.hibernate.sql.exec.spi.JdbcCallParameterExtractor;
import org.hibernate.sql.exec.spi.JdbcCallParameterRegistration;
import org.hibernate.sql.exec.spi.JdbcParameterBinder;
diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcCallParameterRegistration.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcCallParameterRegistration.java
index 84c9564d6f39..2449d52524e1 100644
--- a/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcCallParameterRegistration.java
+++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/spi/JdbcCallParameterRegistration.java
@@ -8,7 +8,7 @@
import jakarta.persistence.ParameterMode;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
-import org.hibernate.query.OutputableType;
+import org.hibernate.type.OutputableType;
import org.hibernate.sql.exec.internal.JdbcCallRefCursorExtractorImpl;
/**
diff --git a/hibernate-core/src/main/java/org/hibernate/query/OutputableType.java b/hibernate-core/src/main/java/org/hibernate/type/OutputableType.java
similarity index 97%
rename from hibernate-core/src/main/java/org/hibernate/query/OutputableType.java
rename to hibernate-core/src/main/java/org/hibernate/type/OutputableType.java
index 25c8bdbb5cd2..158c1177be87 100644
--- a/hibernate-core/src/main/java/org/hibernate/query/OutputableType.java
+++ b/hibernate-core/src/main/java/org/hibernate/type/OutputableType.java
@@ -2,13 +2,14 @@
* SPDX-License-Identifier: Apache-2.0
* Copyright Red Hat Inc. and Hibernate Authors
*/
-package org.hibernate.query;
+package org.hibernate.type;
import java.sql.CallableStatement;
import java.sql.SQLException;
import org.hibernate.Incubating;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
+import org.hibernate.query.BindableType;
import org.hibernate.type.descriptor.jdbc.JdbcType;
/**
diff --git a/hibernate-core/src/main/java/org/hibernate/type/ProcedureParameterExtractionAware.java b/hibernate-core/src/main/java/org/hibernate/type/ProcedureParameterExtractionAware.java
index 907934480adf..0079c5ee3a15 100644
--- a/hibernate-core/src/main/java/org/hibernate/type/ProcedureParameterExtractionAware.java
+++ b/hibernate-core/src/main/java/org/hibernate/type/ProcedureParameterExtractionAware.java
@@ -4,11 +4,9 @@
*/
package org.hibernate.type;
-import org.hibernate.query.OutputableType;
-
/**
- * Optional {@link Type} contract for implementations that are aware of how to extract values from
- * store procedure OUT/INOUT parameters.
+ * Optional {@link Type} contract for implementations that are aware of
+ * how to extract values from stored procedure OUT/INOUT parameters.
*
* @author Steve Ebersole
*/