Class JdbcLiteral<T>
- java.lang.Object
-
- org.hibernate.sql.ast.tree.expression.JdbcLiteral<T>
-
- All Implemented Interfaces:
Bindable
,JdbcMappingContainer
,MappingModelExpressible<T>
,DomainResultProducer<T>
,SqlSelectionProducer
,Expression
,Literal
,SqlAstNode
,JdbcParameterBinder
,JavaTypedExpressible<T>
public class JdbcLiteral<T> extends Object implements Literal, MappingModelExpressible<T>, DomainResultProducer<T>, JavaTypedExpressible<T>
Represents a literal in the SQL AST. This form accepts aJdbcMapping
and acts as its ownMappingModelExpressible
.- See Also:
QueryLiteral
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.Bindable
Bindable.JdbcValuesConsumer
-
-
Field Summary
-
Fields inherited from interface org.hibernate.sql.exec.spi.JdbcParameterBinder
NOOP
-
-
Constructor Summary
Constructors Constructor Description JdbcLiteral(T literalValue, JdbcMapping jdbcMapping)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(SqlAstWalker sqlTreeWalker)
void
applySqlSelections(DomainResultCreationState creationState)
Used when this producer is a selection in a sub-query.void
bindParameterValue(PreparedStatement statement, int startPosition, JdbcParameterBindings jdbcParameterBindings, ExecutionContext executionContext)
Bind the appropriate value in the JDBC statementDomainResult<T>
createDomainResult(String resultVariable, DomainResultCreationState creationState)
Produce the domain queryObject
disassemble(Object value, SharedSessionContractImplementor session)
int
forEachDisassembledJdbcValue(Object value, Clause clause, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)
int
forEachJdbcType(int offset, IndexedConsumer<JdbcMapping> action)
Visit each JdbcMapping starting from the given offsetint
forEachJdbcValue(Object value, Clause clause, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)
JavaType<T>
getExpressibleJavaType()
MappingModelExpressible
getExpressionType()
The type for this expressionJdbcMapping
getJdbcMapping()
List<JdbcMapping>
getJdbcMappings()
The list of JDBC mappingsint
getJdbcTypeCount()
The number of JDBC mappingsObject
getLiteralValue()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hibernate.metamodel.mapping.Bindable
forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue
-
Methods inherited from interface org.hibernate.sql.ast.tree.expression.Expression
createSqlSelection, getColumnReference
-
-
-
-
Constructor Detail
-
JdbcLiteral
public JdbcLiteral(T literalValue, JdbcMapping jdbcMapping)
-
-
Method Detail
-
getLiteralValue
public Object getLiteralValue()
- Specified by:
getLiteralValue
in interfaceLiteral
-
getJdbcMapping
public JdbcMapping getJdbcMapping()
- Specified by:
getJdbcMapping
in interfaceLiteral
-
accept
public void accept(SqlAstWalker sqlTreeWalker)
- Specified by:
accept
in interfaceSqlAstNode
-
bindParameterValue
public void bindParameterValue(PreparedStatement statement, int startPosition, JdbcParameterBindings jdbcParameterBindings, ExecutionContext executionContext) throws SQLException
Description copied from interface:JdbcParameterBinder
Bind the appropriate value in the JDBC statement- Specified by:
bindParameterValue
in interfaceJdbcParameterBinder
- Throws:
SQLException
-
getExpressionType
public MappingModelExpressible getExpressionType()
Description copied from interface:Expression
The type for this expression- Specified by:
getExpressionType
in interfaceExpression
-
getJdbcTypeCount
public int getJdbcTypeCount()
Description copied from interface:Bindable
The number of JDBC mappings- Specified by:
getJdbcTypeCount
in interfaceBindable
- Specified by:
getJdbcTypeCount
in interfaceJdbcMappingContainer
-
getJdbcMappings
public List<JdbcMapping> getJdbcMappings()
Description copied from interface:Bindable
The list of JDBC mappings- Specified by:
getJdbcMappings
in interfaceBindable
- Specified by:
getJdbcMappings
in interfaceJdbcMappingContainer
-
forEachJdbcType
public int forEachJdbcType(int offset, IndexedConsumer<JdbcMapping> action)
Description copied from interface:JdbcMappingContainer
Visit each JdbcMapping starting from the given offset- Specified by:
forEachJdbcType
in interfaceJdbcMappingContainer
-
disassemble
public Object disassemble(Object value, SharedSessionContractImplementor session)
- Specified by:
disassemble
in interfaceBindable
- See Also:
As an example, consider the following domain model: ````
-
forEachDisassembledJdbcValue
public int forEachDisassembledJdbcValue(Object value, Clause clause, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)
- Specified by:
forEachDisassembledJdbcValue
in interfaceBindable
-
forEachJdbcValue
public int forEachJdbcValue(Object value, Clause clause, int offset, Bindable.JdbcValuesConsumer valuesConsumer, SharedSessionContractImplementor session)
- Specified by:
forEachJdbcValue
in interfaceBindable
-
createDomainResult
public DomainResult<T> createDomainResult(String resultVariable, DomainResultCreationState creationState)
Description copied from interface:DomainResultProducer
Produce the domain query- Specified by:
createDomainResult
in interfaceDomainResultProducer<T>
-
applySqlSelections
public void applySqlSelections(DomainResultCreationState creationState)
Description copied from interface:DomainResultProducer
Used when this producer is a selection in a sub-query. The DomainResult is only needed for root query of a SELECT statement. This default impl assumes this producer is a true (Sql)Expression- Specified by:
applySqlSelections
in interfaceDomainResultProducer<T>
-
getExpressibleJavaType
public JavaType<T> getExpressibleJavaType()
- Specified by:
getExpressibleJavaType
in interfaceJavaTypedExpressible<T>
-
-