Skip to content

Commit 3d1d16b

Browse files
committed
actually use FunctionReturn somewhere
but mark it @Incubating, because it's very unclear we even need this interface
1 parent 02fb9a2 commit 3d1d16b

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

hibernate-core/src/main/java/org/hibernate/procedure/FunctionReturn.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,23 @@
44
*/
55
package org.hibernate.procedure;
66

7+
import org.hibernate.Incubating;
78
import org.hibernate.query.procedure.ProcedureParameter;
89

910
/**
10-
* Describes the function return for ProcedureCalls that represent calls to
11-
* a function ({@code "{? = call ...}} syntax) rather that a proc ({@code {call ...}} syntax)
11+
* Describes the function return value of a {@link ProcedureCall}
12+
* executed via a JDBC escape of form ({@code "{? = call ...}}.
13+
* That is, the {@code ?} parameter occurring before the {@code =}.
1214
*
1315
* @author Steve Ebersole
16+
*
17+
* @since 6.0
1418
*/
19+
@Incubating
1520
public interface FunctionReturn<T> extends ProcedureParameter<T> {
21+
/**
22+
* The {@linkplain org.hibernate.type.SqlTypes JDBC type code}
23+
* representing the SQL type of the function return value.
24+
*/
1625
int getJdbcTypeCode();
1726
}

hibernate-core/src/main/java/org/hibernate/procedure/ProcedureCall.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import jakarta.persistence.StoredProcedureQuery;
1515
import jakarta.persistence.TemporalType;
1616

17+
import org.hibernate.Incubating;
1718
import org.hibernate.MappingException;
1819
import org.hibernate.query.BindableType;
1920
import org.hibernate.query.SynchronizeableQuery;
@@ -234,6 +235,16 @@ <T> ProcedureParameter<T> registerParameter(String parameterName, BindableType<T
234235
*/
235236
ProcedureOutputs getOutputs();
236237

238+
/**
239+
* The {@link FunctionReturn} describing the return value of
240+
* the function, or {@code null} if this {@code ProcedureCall}
241+
* is not a function call.
242+
*
243+
* @since 7.0
244+
*/
245+
@Incubating
246+
FunctionReturn<?> getFunctionReturn();
247+
237248
/**
238249
* Release the underlying JDBC {@link java.sql.CallableStatement}
239250
*/

hibernate-core/src/main/java/org/hibernate/procedure/spi/ProcedureCallImplementor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ default List<R> getResultList() {
3232

3333
ParameterStrategy getParameterStrategy();
3434

35+
@Override
3536
FunctionReturnImplementor<R> getFunctionReturn();
3637

3738
@Override

hibernate-core/src/main/java/org/hibernate/query/procedure/ProcedureParameter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,4 @@ public interface ProcedureParameter<T> extends QueryParameter<T> {
2323
* @return The parameter mode.
2424
*/
2525
ParameterMode getMode();
26-
2726
}

0 commit comments

Comments
 (0)