mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-28 06:49:09 +00:00
Revert removal of JavaType from SqlSelectionProducer#createSqlSelection
This commit is contained in:
parent
dfa3981a52
commit
30bb01d0fa
@ -16,6 +16,7 @@
|
|||||||
import org.hibernate.sql.ast.tree.expression.Expression;
|
import org.hibernate.sql.ast.tree.expression.Expression;
|
||||||
import org.hibernate.sql.results.jdbc.spi.JdbcValuesMetadata;
|
import org.hibernate.sql.results.jdbc.spi.JdbcValuesMetadata;
|
||||||
import org.hibernate.type.descriptor.ValueExtractor;
|
import org.hibernate.type.descriptor.ValueExtractor;
|
||||||
|
import org.hibernate.type.descriptor.java.JavaType;
|
||||||
import org.hibernate.type.spi.TypeConfiguration;
|
import org.hibernate.type.spi.TypeConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,6 +51,7 @@ public ValueExtractor getJdbcValueExtractor() {
|
|||||||
public SqlSelection createSqlSelection(
|
public SqlSelection createSqlSelection(
|
||||||
int jdbcPosition,
|
int jdbcPosition,
|
||||||
int valuesArrayPosition,
|
int valuesArrayPosition,
|
||||||
|
JavaType javaType,
|
||||||
TypeConfiguration typeConfiguration) {
|
TypeConfiguration typeConfiguration) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -89,8 +89,13 @@ protected FunctionRenderingSupport getRenderer() {
|
|||||||
public SqlSelection createSqlSelection(
|
public SqlSelection createSqlSelection(
|
||||||
int jdbcPosition,
|
int jdbcPosition,
|
||||||
int valuesArrayPosition,
|
int valuesArrayPosition,
|
||||||
|
JavaType javaType,
|
||||||
TypeConfiguration typeConfiguration) {
|
TypeConfiguration typeConfiguration) {
|
||||||
return new SqlSelectionImpl( jdbcPosition, valuesArrayPosition, this );
|
return new SqlSelectionImpl(
|
||||||
|
jdbcPosition,
|
||||||
|
valuesArrayPosition,
|
||||||
|
this
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
import org.hibernate.sql.ast.tree.from.TableGroup;
|
import org.hibernate.sql.ast.tree.from.TableGroup;
|
||||||
import org.hibernate.sql.results.graph.DomainResult;
|
import org.hibernate.sql.results.graph.DomainResult;
|
||||||
import org.hibernate.sql.results.graph.DomainResultCreationState;
|
import org.hibernate.sql.results.graph.DomainResultCreationState;
|
||||||
|
import org.hibernate.type.descriptor.java.JavaType;
|
||||||
import org.hibernate.type.spi.TypeConfiguration;
|
import org.hibernate.type.spi.TypeConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -52,6 +53,7 @@ public EntityDiscriminatorMapping getExpressionType() {
|
|||||||
public SqlSelection createSqlSelection(
|
public SqlSelection createSqlSelection(
|
||||||
int jdbcPosition,
|
int jdbcPosition,
|
||||||
int valuesArrayPosition,
|
int valuesArrayPosition,
|
||||||
|
JavaType javaType,
|
||||||
TypeConfiguration typeConfiguration) {
|
TypeConfiguration typeConfiguration) {
|
||||||
return new ResultSetMappingSqlSelection( valuesArrayPosition, getDiscriminatorMapping() );
|
return new ResultSetMappingSqlSelection( valuesArrayPosition, getDiscriminatorMapping() );
|
||||||
}
|
}
|
||||||
|
@ -124,6 +124,7 @@ else if ( fetchParent != null ) {
|
|||||||
final SqlSelection sqlSelection = expression.createSqlSelection(
|
final SqlSelection sqlSelection = expression.createSqlSelection(
|
||||||
valuesArrayPosition + 1,
|
valuesArrayPosition + 1,
|
||||||
valuesArrayPosition,
|
valuesArrayPosition,
|
||||||
|
javaType,
|
||||||
typeConfiguration
|
typeConfiguration
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
package org.hibernate.sql.ast.spi;
|
package org.hibernate.sql.ast.spi;
|
||||||
|
|
||||||
import org.hibernate.sql.results.jdbc.spi.RowProcessingState;
|
import org.hibernate.sql.results.jdbc.spi.RowProcessingState;
|
||||||
|
import org.hibernate.type.descriptor.java.JavaType;
|
||||||
import org.hibernate.type.spi.TypeConfiguration;
|
import org.hibernate.type.spi.TypeConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -15,12 +16,15 @@
|
|||||||
public interface SqlSelectionProducer {
|
public interface SqlSelectionProducer {
|
||||||
/**
|
/**
|
||||||
* Create a SqlSelection for the given JDBC ResultSet position
|
* Create a SqlSelection for the given JDBC ResultSet position
|
||||||
|
*
|
||||||
* @param jdbcPosition The index position used to read values from JDBC
|
* @param jdbcPosition The index position used to read values from JDBC
|
||||||
* @param valuesArrayPosition The position in our {@linkplain RowProcessingState#getJdbcValue(SqlSelection) "current JDBC values array"}
|
* @param valuesArrayPosition The position in our {@linkplain RowProcessingState#getJdbcValue(SqlSelection) "current JDBC values array"}
|
||||||
|
* @param javaType The descriptor for the Java type to read the value as
|
||||||
* @param typeConfiguration The associated TypeConfiguration
|
* @param typeConfiguration The associated TypeConfiguration
|
||||||
*/
|
*/
|
||||||
SqlSelection createSqlSelection(
|
SqlSelection createSqlSelection(
|
||||||
int jdbcPosition,
|
int jdbcPosition,
|
||||||
int valuesArrayPosition,
|
int valuesArrayPosition,
|
||||||
|
JavaType javaType,
|
||||||
TypeConfiguration typeConfiguration);
|
TypeConfiguration typeConfiguration);
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
import org.hibernate.sql.ast.spi.SqlSelectionProducer;
|
import org.hibernate.sql.ast.spi.SqlSelectionProducer;
|
||||||
import org.hibernate.sql.ast.tree.SqlAstNode;
|
import org.hibernate.sql.ast.tree.SqlAstNode;
|
||||||
import org.hibernate.sql.results.internal.SqlSelectionImpl;
|
import org.hibernate.sql.results.internal.SqlSelectionImpl;
|
||||||
|
import org.hibernate.type.descriptor.java.JavaType;
|
||||||
import org.hibernate.type.spi.TypeConfiguration;
|
import org.hibernate.type.spi.TypeConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,7 +33,12 @@ default ColumnReference getColumnReference() {
|
|||||||
default SqlSelection createSqlSelection(
|
default SqlSelection createSqlSelection(
|
||||||
int jdbcPosition,
|
int jdbcPosition,
|
||||||
int valuesArrayPosition,
|
int valuesArrayPosition,
|
||||||
|
JavaType javaType,
|
||||||
TypeConfiguration typeConfiguration) {
|
TypeConfiguration typeConfiguration) {
|
||||||
return new SqlSelectionImpl( jdbcPosition, valuesArrayPosition, this );
|
return new SqlSelectionImpl(
|
||||||
|
jdbcPosition,
|
||||||
|
valuesArrayPosition,
|
||||||
|
this
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
import org.hibernate.sql.ast.tree.expression.Expression;
|
import org.hibernate.sql.ast.tree.expression.Expression;
|
||||||
import org.hibernate.sql.results.graph.DomainResult;
|
import org.hibernate.sql.results.graph.DomainResult;
|
||||||
import org.hibernate.sql.results.graph.DomainResultCreationState;
|
import org.hibernate.sql.results.graph.DomainResultCreationState;
|
||||||
|
import org.hibernate.type.descriptor.java.JavaType;
|
||||||
import org.hibernate.type.spi.TypeConfiguration;
|
import org.hibernate.type.spi.TypeConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,8 +47,14 @@ public ColumnReference getColumnReference() {
|
|||||||
public SqlSelection createSqlSelection(
|
public SqlSelection createSqlSelection(
|
||||||
int jdbcPosition,
|
int jdbcPosition,
|
||||||
int valuesArrayPosition,
|
int valuesArrayPosition,
|
||||||
|
JavaType javaType,
|
||||||
TypeConfiguration typeConfiguration) {
|
TypeConfiguration typeConfiguration) {
|
||||||
return getTableGroup().createSqlSelection( jdbcPosition, valuesArrayPosition, typeConfiguration );
|
return getTableGroup().createSqlSelection(
|
||||||
|
jdbcPosition,
|
||||||
|
valuesArrayPosition,
|
||||||
|
javaType,
|
||||||
|
typeConfiguration
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
import org.hibernate.sql.exec.spi.JdbcParameterBinding;
|
import org.hibernate.sql.exec.spi.JdbcParameterBinding;
|
||||||
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
|
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
|
||||||
import org.hibernate.sql.results.internal.SqlSelectionImpl;
|
import org.hibernate.sql.results.internal.SqlSelectionImpl;
|
||||||
|
import org.hibernate.type.descriptor.java.JavaType;
|
||||||
import org.hibernate.type.spi.TypeConfiguration;
|
import org.hibernate.type.spi.TypeConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,12 +59,17 @@ public void accept(SqlAstWalker sqlTreeWalker) {
|
|||||||
public SqlSelection createSqlSelection(
|
public SqlSelection createSqlSelection(
|
||||||
int jdbcPosition,
|
int jdbcPosition,
|
||||||
int valuesArrayPosition,
|
int valuesArrayPosition,
|
||||||
|
JavaType javaType,
|
||||||
TypeConfiguration typeConfiguration) {
|
TypeConfiguration typeConfiguration) {
|
||||||
// todo (6.0) : investigate "virtual" or "static" selections
|
// todo (6.0) : investigate "virtual" or "static" selections
|
||||||
// - anything that is the same for each row always - parameter, literal, etc;
|
// - anything that is the same for each row always - parameter, literal, etc;
|
||||||
// the idea would be to write the value directly into the JdbcValues array
|
// the idea would be to write the value directly into the JdbcValues array
|
||||||
// and not generating a SQL selection in the query sent to DB
|
// and not generating a SQL selection in the query sent to DB
|
||||||
return new SqlSelectionImpl( jdbcPosition, valuesArrayPosition, this );
|
return new SqlSelectionImpl(
|
||||||
|
jdbcPosition,
|
||||||
|
valuesArrayPosition,
|
||||||
|
this
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user