HHH-15461 Replace uses of method references for SqlAppender with proper implementation
This commit is contained in:
parent
84c276b3cc
commit
271cba0603
|
@ -162,7 +162,7 @@ public class InformixDialect extends Dialect {
|
||||||
ddlTypeRegistry.addDescriptor(
|
ddlTypeRegistry.addDescriptor(
|
||||||
CapacityDependentDdlType.builder( NVARCHAR, columnType( LONG32NVARCHAR ), this )
|
CapacityDependentDdlType.builder( NVARCHAR, columnType( LONG32NVARCHAR ), this )
|
||||||
.withTypeCapacity( 255, "varchar($l)" )
|
.withTypeCapacity( 255, "varchar($l)" )
|
||||||
.withTypeCapacity( getMaxVarcharLength(), columnType( NVARCHAR ) )
|
.withTypeCapacity( getMaxNVarcharLength(), columnType( NVARCHAR ) )
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import java.util.Collections;
|
||||||
|
|
||||||
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||||
import org.hibernate.engine.query.internal.NativeQueryInterpreterStandardImpl;
|
import org.hibernate.engine.query.internal.NativeQueryInterpreterStandardImpl;
|
||||||
import org.hibernate.engine.query.spi.NativeQueryInterpreter;
|
|
||||||
import org.hibernate.metamodel.model.domain.internal.JpaMetamodelImpl;
|
import org.hibernate.metamodel.model.domain.internal.JpaMetamodelImpl;
|
||||||
import org.hibernate.orm.test.jpa.JpaComplianceStub;
|
import org.hibernate.orm.test.jpa.JpaComplianceStub;
|
||||||
import org.hibernate.query.criteria.ValueHandlingMode;
|
import org.hibernate.query.criteria.ValueHandlingMode;
|
||||||
|
@ -20,6 +19,7 @@ import org.hibernate.query.sqm.function.SelfRenderingSqmFunction;
|
||||||
import org.hibernate.query.sqm.function.SqmFunctionDescriptor;
|
import org.hibernate.query.sqm.function.SqmFunctionDescriptor;
|
||||||
import org.hibernate.service.ServiceRegistry;
|
import org.hibernate.service.ServiceRegistry;
|
||||||
import org.hibernate.sql.ast.spi.SqlAppender;
|
import org.hibernate.sql.ast.spi.SqlAppender;
|
||||||
|
import org.hibernate.sql.ast.spi.StringBuilderSqlAppender;
|
||||||
import org.hibernate.type.BasicType;
|
import org.hibernate.type.BasicType;
|
||||||
import org.hibernate.type.descriptor.java.JdbcDateJavaType;
|
import org.hibernate.type.descriptor.java.JdbcDateJavaType;
|
||||||
import org.hibernate.type.descriptor.java.JdbcTimestampJavaType;
|
import org.hibernate.type.descriptor.java.JdbcTimestampJavaType;
|
||||||
|
@ -121,26 +121,4 @@ public class InformixDialectTestCase extends BaseUnitTestCase {
|
||||||
assertEquals( "today", appender.toString() );
|
assertEquals( "today", appender.toString() );
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class StringBuilderSqlAppender implements SqlAppender {
|
|
||||||
private final StringBuilder sb;
|
|
||||||
|
|
||||||
public StringBuilderSqlAppender() {
|
|
||||||
this.sb = new StringBuilder();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void appendSql(String fragment) {
|
|
||||||
sb.append( fragment );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void appendSql(char fragment) {
|
|
||||||
sb.append( fragment );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,6 +133,7 @@ import org.hibernate.sql.ast.SqlAstNodeRenderingMode;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
|
||||||
import org.hibernate.sql.ast.spi.SqlAppender;
|
import org.hibernate.sql.ast.spi.SqlAppender;
|
||||||
import org.hibernate.sql.ast.spi.StandardSqlAstTranslatorFactory;
|
import org.hibernate.sql.ast.spi.StandardSqlAstTranslatorFactory;
|
||||||
|
import org.hibernate.sql.ast.spi.StringBuilderSqlAppender;
|
||||||
import org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl;
|
import org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl;
|
||||||
import org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorNoOpImpl;
|
import org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorNoOpImpl;
|
||||||
import org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor;
|
import org.hibernate.tool.schema.extract.spi.SequenceInformationExtractor;
|
||||||
|
@ -2265,7 +2266,7 @@ public abstract class Dialect implements ConversionContext {
|
||||||
*/
|
*/
|
||||||
public String toBooleanValueString(boolean bool) {
|
public String toBooleanValueString(boolean bool) {
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
appendBooleanValueString( sb::append, bool );
|
appendBooleanValueString( new StringBuilderSqlAppender( sb ), bool );
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3499,7 +3500,7 @@ public abstract class Dialect implements ConversionContext {
|
||||||
*/
|
*/
|
||||||
public String inlineLiteral(String literal) {
|
public String inlineLiteral(String literal) {
|
||||||
final StringBuilder sb = new StringBuilder( literal.length() + 2 );
|
final StringBuilder sb = new StringBuilder( literal.length() + 2 );
|
||||||
appendLiteral( sb::append, literal );
|
appendLiteral( new StringBuilderSqlAppender( sb ), literal );
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -341,7 +341,7 @@ public class SybaseASESqlAstTranslator<T extends JdbcOperation> extends Abstract
|
||||||
if ( currentQuerySpec != null && !currentQuerySpec.isRoot()
|
if ( currentQuerySpec != null && !currentQuerySpec.isRoot()
|
||||||
&& (roots = currentQuerySpec.getFromClause().getRoots()).size() == 1
|
&& (roots = currentQuerySpec.getFromClause().getRoots()).size() == 1
|
||||||
&& roots.get( 0 ).getPrimaryTableReference() instanceof UnionTableReference ) {
|
&& roots.get( 0 ).getPrimaryTableReference() instanceof UnionTableReference ) {
|
||||||
appendSql( columnReference.getExpressionText() );
|
columnReference.appendReadExpression( this );
|
||||||
}
|
}
|
||||||
// for now, use the unqualified form
|
// for now, use the unqualified form
|
||||||
else if ( columnReference.isColumnExpressionFormula() ) {
|
else if ( columnReference.isColumnExpressionFormula() ) {
|
||||||
|
@ -359,7 +359,7 @@ public class SybaseASESqlAstTranslator<T extends JdbcOperation> extends Abstract
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
appendSql( columnReference.getExpressionText() );
|
columnReference.appendReadExpression( this );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,7 @@ import org.hibernate.query.sqm.sql.SqmToSqlAstConverter;
|
||||||
import org.hibernate.query.sqm.tree.SqmTypedNode;
|
import org.hibernate.query.sqm.tree.SqmTypedNode;
|
||||||
import org.hibernate.sql.ast.SqlAstTranslator;
|
import org.hibernate.sql.ast.SqlAstTranslator;
|
||||||
import org.hibernate.sql.ast.spi.SqlAppender;
|
import org.hibernate.sql.ast.spi.SqlAppender;
|
||||||
|
import org.hibernate.sql.ast.spi.StringBuilderSqlAppender;
|
||||||
import org.hibernate.sql.ast.tree.SqlAstNode;
|
import org.hibernate.sql.ast.tree.SqlAstNode;
|
||||||
import org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression;
|
import org.hibernate.sql.ast.tree.expression.BinaryArithmeticExpression;
|
||||||
import org.hibernate.sql.ast.tree.expression.CaseSearchedExpression;
|
import org.hibernate.sql.ast.tree.expression.CaseSearchedExpression;
|
||||||
|
@ -207,9 +208,10 @@ public class FormatFunction extends AbstractSqmFunctionDescriptor implements Fun
|
||||||
.getDialect();
|
.getDialect();
|
||||||
Expression formatExpression = null;
|
Expression formatExpression = null;
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
|
final StringBuilderSqlAppender sqlAppender = new StringBuilderSqlAppender( sb );
|
||||||
final String delimiter;
|
final String delimiter;
|
||||||
if ( supportsPatternLiterals ) {
|
if ( supportsPatternLiterals ) {
|
||||||
dialect.appendDatetimeFormat( sb::append, "'a'" );
|
dialect.appendDatetimeFormat( sqlAppender, "'a'" );
|
||||||
delimiter = sb.substring( 0, sb.indexOf( "a" ) ).replace( "''", "'" );
|
delimiter = sb.substring( 0, sb.indexOf( "a" ) ).replace( "''", "'" );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -241,7 +243,7 @@ public class FormatFunction extends AbstractSqmFunctionDescriptor implements Fun
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
sb.setLength( 0 );
|
sb.setLength( 0 );
|
||||||
dialect.appendDatetimeFormat( sb::append, smallParts[l] );
|
dialect.appendDatetimeFormat( sqlAppender, smallParts[l] );
|
||||||
final String formatPart = sb.toString();
|
final String formatPart = sb.toString();
|
||||||
if ( supportsPatternLiterals ) {
|
if ( supportsPatternLiterals ) {
|
||||||
formatExpression = concat(
|
formatExpression = concat(
|
||||||
|
@ -333,7 +335,7 @@ public class FormatFunction extends AbstractSqmFunctionDescriptor implements Fun
|
||||||
final String formatLiteralPart;
|
final String formatLiteralPart;
|
||||||
if ( supportsPatternLiterals ) {
|
if ( supportsPatternLiterals ) {
|
||||||
sb.setLength( 0 );
|
sb.setLength( 0 );
|
||||||
dialect.appendDatetimeFormat( sb::append, "'" + chunks[i + 1] + "'" );
|
dialect.appendDatetimeFormat( sqlAppender, "'" + chunks[i + 1] + "'" );
|
||||||
formatLiteralPart = sb.toString().replace( "''", "'" );
|
formatLiteralPart = sb.toString().replace( "''", "'" );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -309,11 +309,7 @@ public abstract class AbstractNaturalIdLoader<T> implements NaturalIdLoader<T> {
|
||||||
SqlExpressionResolver.createColumnReferenceKey( tableReference, selectableMapping.getSelectionExpression() ),
|
SqlExpressionResolver.createColumnReferenceKey( tableReference, selectableMapping.getSelectionExpression() ),
|
||||||
(processingState) -> new ColumnReference(
|
(processingState) -> new ColumnReference(
|
||||||
tableReference,
|
tableReference,
|
||||||
selectableMapping.getSelectionExpression(),
|
selectableMapping,
|
||||||
selectableMapping.isFormula(),
|
|
||||||
selectableMapping.getCustomReadExpression(),
|
|
||||||
selectableMapping.getCustomWriteExpression(),
|
|
||||||
selectableMapping.getJdbcMapping(),
|
|
||||||
sessionFactory
|
sessionFactory
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -76,7 +76,7 @@ public class LoaderSqlAstCreationState
|
||||||
this.sf = sf;
|
this.sf = sf;
|
||||||
this.processingState = new SqlAstQueryPartProcessingStateImpl(
|
this.processingState = new SqlAstQueryPartProcessingStateImpl(
|
||||||
queryPart,
|
queryPart,
|
||||||
this,
|
null,
|
||||||
this,
|
this,
|
||||||
() -> Clause.IRRELEVANT,
|
() -> Clause.IRRELEVANT,
|
||||||
true
|
true
|
||||||
|
|
|
@ -51,6 +51,7 @@ import org.hibernate.sql.ast.spi.FromClauseAccess;
|
||||||
import org.hibernate.sql.ast.spi.SqlAliasBase;
|
import org.hibernate.sql.ast.spi.SqlAliasBase;
|
||||||
import org.hibernate.sql.ast.spi.SqlAstCreationContext;
|
import org.hibernate.sql.ast.spi.SqlAstCreationContext;
|
||||||
import org.hibernate.sql.ast.spi.SqlExpressionResolver;
|
import org.hibernate.sql.ast.spi.SqlExpressionResolver;
|
||||||
|
import org.hibernate.sql.ast.spi.StringBuilderSqlAppender;
|
||||||
import org.hibernate.sql.ast.tree.expression.ColumnReference;
|
import org.hibernate.sql.ast.tree.expression.ColumnReference;
|
||||||
import org.hibernate.sql.ast.tree.from.NamedTableReference;
|
import org.hibernate.sql.ast.tree.from.NamedTableReference;
|
||||||
import org.hibernate.sql.ast.tree.from.TableGroup;
|
import org.hibernate.sql.ast.tree.from.TableGroup;
|
||||||
|
@ -520,6 +521,7 @@ public class UnionSubclassEntityPersister extends AbstractEntityPersister {
|
||||||
// Create a union sub-query for the table names, like generateSubquery(PersistentClass model, Mapping mapping)
|
// Create a union sub-query for the table names, like generateSubquery(PersistentClass model, Mapping mapping)
|
||||||
final StringBuilder buf = new StringBuilder( subquery.length() )
|
final StringBuilder buf = new StringBuilder( subquery.length() )
|
||||||
.append( "( " );
|
.append( "( " );
|
||||||
|
final StringBuilderSqlAppender sqlAppender = new StringBuilderSqlAppender( buf );
|
||||||
|
|
||||||
for ( String name : getSubclassEntityNames() ) {
|
for ( String name : getSubclassEntityNames() ) {
|
||||||
final AbstractEntityPersister persister = (AbstractEntityPersister) metamodel.findEntityDescriptor( name );
|
final AbstractEntityPersister persister = (AbstractEntityPersister) metamodel.findEntityDescriptor( name );
|
||||||
|
@ -536,9 +538,7 @@ public class UnionSubclassEntityPersister extends AbstractEntityPersister {
|
||||||
buf.append( dialect.getSelectClauseNullString( sqlType, getFactory().getTypeConfiguration() ) )
|
buf.append( dialect.getSelectClauseNullString( sqlType, getFactory().getTypeConfiguration() ) )
|
||||||
.append( " as " );
|
.append( " as " );
|
||||||
}
|
}
|
||||||
buf.append(
|
new ColumnReference( (String) null, selectableMapping, getFactory() ).appendReadExpression( sqlAppender );
|
||||||
new ColumnReference( (String) null, selectableMapping, getFactory() ).getExpressionText()
|
|
||||||
);
|
|
||||||
buf.append( ", " );
|
buf.append( ", " );
|
||||||
}
|
}
|
||||||
buf.append( persister.getDiscriminatorSQLValue() ).append( " as clazz_" );
|
buf.append( persister.getDiscriminatorSQLValue() ).append( " as clazz_" );
|
||||||
|
|
|
@ -4285,7 +4285,7 @@ public abstract class AbstractSqlAstTranslator<T extends JdbcOperation> implemen
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
appendSql( columnReference.getExpressionText() );
|
columnReference.appendReadExpression( this );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
|
||||||
|
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
|
||||||
|
*/
|
||||||
|
package org.hibernate.sql.ast.spi;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Access to appending SQL fragments to a StringBuilder
|
||||||
|
*/
|
||||||
|
public class StringBuilderSqlAppender implements SqlAppender {
|
||||||
|
|
||||||
|
private final StringBuilder sb;
|
||||||
|
|
||||||
|
public StringBuilderSqlAppender() {
|
||||||
|
this(new StringBuilder());
|
||||||
|
}
|
||||||
|
|
||||||
|
public StringBuilderSqlAppender(StringBuilder sb) {
|
||||||
|
this.sb = sb;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void appendSql(String fragment) {
|
||||||
|
sb.append( fragment );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void appendSql(char fragment) {
|
||||||
|
sb.append( fragment );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void appendSql(int value) {
|
||||||
|
sb.append( value );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void appendSql(long value) {
|
||||||
|
sb.append( value );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void appendSql(boolean value) {
|
||||||
|
sb.append( value );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Appendable append(CharSequence csq) {
|
||||||
|
return sb.append( csq );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Appendable append(CharSequence csq, int start, int end) {
|
||||||
|
return sb.append( csq, start, end );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Appendable append(char c) {
|
||||||
|
return sb.append( c );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,6 +18,7 @@ import org.hibernate.metamodel.mapping.JdbcMapping;
|
||||||
import org.hibernate.metamodel.mapping.MappingModelExpressible;
|
import org.hibernate.metamodel.mapping.MappingModelExpressible;
|
||||||
import org.hibernate.sql.Template;
|
import org.hibernate.sql.Template;
|
||||||
import org.hibernate.sql.ast.SqlAstWalker;
|
import org.hibernate.sql.ast.SqlAstWalker;
|
||||||
|
import org.hibernate.sql.ast.spi.SqlAppender;
|
||||||
import org.hibernate.sql.ast.tree.from.TableReference;
|
import org.hibernate.sql.ast.tree.from.TableReference;
|
||||||
import org.hibernate.sql.ast.tree.update.Assignable;
|
import org.hibernate.sql.ast.tree.update.Assignable;
|
||||||
|
|
||||||
|
@ -190,6 +191,10 @@ public class ColumnReference implements Expression, Assignable {
|
||||||
return readExpression;
|
return readExpression;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void appendReadExpression(SqlAppender appender) {
|
||||||
|
appender.append( getExpressionText() );
|
||||||
|
}
|
||||||
|
|
||||||
public String renderSqlFragment(SessionFactoryImplementor sessionFactory) {
|
public String renderSqlFragment(SessionFactoryImplementor sessionFactory) {
|
||||||
return getExpressionText();
|
return getExpressionText();
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,9 +12,7 @@ import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
import org.hibernate.dialect.Dialect;
|
|
||||||
import org.hibernate.metamodel.model.convert.spi.BasicValueConverter;
|
import org.hibernate.metamodel.model.convert.spi.BasicValueConverter;
|
||||||
import org.hibernate.sql.ast.spi.SqlAppender;
|
|
||||||
import org.hibernate.type.descriptor.ValueBinder;
|
import org.hibernate.type.descriptor.ValueBinder;
|
||||||
import org.hibernate.type.descriptor.ValueExtractor;
|
import org.hibernate.type.descriptor.ValueExtractor;
|
||||||
import org.hibernate.type.descriptor.WrapperOptions;
|
import org.hibernate.type.descriptor.WrapperOptions;
|
||||||
|
|
|
@ -18,6 +18,7 @@ import org.hibernate.engine.jdbc.internal.BinaryStreamImpl;
|
||||||
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
||||||
import org.hibernate.internal.util.compare.RowVersionComparator;
|
import org.hibernate.internal.util.compare.RowVersionComparator;
|
||||||
import org.hibernate.sql.ast.spi.SqlAppender;
|
import org.hibernate.sql.ast.spi.SqlAppender;
|
||||||
|
import org.hibernate.sql.ast.spi.StringBuilderSqlAppender;
|
||||||
import org.hibernate.type.descriptor.WrapperOptions;
|
import org.hibernate.type.descriptor.WrapperOptions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -50,9 +51,9 @@ public class PrimitiveByteArrayJavaType extends AbstractClassJavaType<byte[]>
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString(byte[] bytes) {
|
public String toString(byte[] bytes) {
|
||||||
final StringBuilder buf = new StringBuilder( bytes.length * 2 );
|
final StringBuilder sb = new StringBuilder( bytes.length * 2 );
|
||||||
appendString( buf::append, bytes );
|
appendString( new StringBuilderSqlAppender( sb ), bytes );
|
||||||
return buf.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void appendString(SqlAppender appender, byte[] bytes) {
|
public void appendString(SqlAppender appender, byte[] bytes) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ import java.io.Serializable;
|
||||||
|
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
import org.hibernate.sql.ast.spi.SqlAppender;
|
import org.hibernate.sql.ast.spi.SqlAppender;
|
||||||
|
import org.hibernate.sql.ast.spi.StringBuilderSqlAppender;
|
||||||
import org.hibernate.type.descriptor.WrapperOptions;
|
import org.hibernate.type.descriptor.WrapperOptions;
|
||||||
import org.hibernate.type.descriptor.java.JavaType;
|
import org.hibernate.type.descriptor.java.JavaType;
|
||||||
|
|
||||||
|
@ -33,7 +34,7 @@ public interface JdbcLiteralFormatter<T> extends Serializable {
|
||||||
*/
|
*/
|
||||||
default String toJdbcLiteral(T value, Dialect dialect, WrapperOptions wrapperOptions) {
|
default String toJdbcLiteral(T value, Dialect dialect, WrapperOptions wrapperOptions) {
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
appendJdbcLiteral( sb::append, value, dialect, wrapperOptions );
|
appendJdbcLiteral( new StringBuilderSqlAppender( sb ), value, dialect, wrapperOptions );
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -184,7 +184,7 @@ public class SmokeTests {
|
||||||
final Expression selectedExpression = sqlSelection.getExpression();
|
final Expression selectedExpression = sqlSelection.getExpression();
|
||||||
assertThat( selectedExpression, instanceOf( ColumnReference.class ) );
|
assertThat( selectedExpression, instanceOf( ColumnReference.class ) );
|
||||||
final ColumnReference columnReference = (ColumnReference) selectedExpression;
|
final ColumnReference columnReference = (ColumnReference) selectedExpression;
|
||||||
assertThat( columnReference.renderSqlFragment( scope.getSessionFactory() ), is( "s1_0.gender" ) );
|
assertThat( columnReference.getExpressionText(), is( "s1_0.gender" ) );
|
||||||
|
|
||||||
final JdbcMappingContainer selectedExpressible = selectedExpression.getExpressionType();
|
final JdbcMappingContainer selectedExpressible = selectedExpression.getExpressionType();
|
||||||
assertThat( selectedExpressible, instanceOf( CustomType.class ) );
|
assertThat( selectedExpressible, instanceOf( CustomType.class ) );
|
||||||
|
|
|
@ -24,6 +24,7 @@ import org.hibernate.dialect.SybaseDialect;
|
||||||
import org.hibernate.dialect.TimeZoneSupport;
|
import org.hibernate.dialect.TimeZoneSupport;
|
||||||
import org.hibernate.dialect.TiDBDialect;
|
import org.hibernate.dialect.TiDBDialect;
|
||||||
import org.hibernate.query.sqm.FetchClauseType;
|
import org.hibernate.query.sqm.FetchClauseType;
|
||||||
|
import org.hibernate.sql.ast.spi.StringBuilderSqlAppender;
|
||||||
|
|
||||||
import org.hibernate.testing.DialectCheck;
|
import org.hibernate.testing.DialectCheck;
|
||||||
|
|
||||||
|
@ -330,7 +331,7 @@ abstract public class DialectFeatureChecks {
|
||||||
public static class SupportsFormat implements DialectFeatureCheck {
|
public static class SupportsFormat implements DialectFeatureCheck {
|
||||||
public boolean apply(Dialect dialect) {
|
public boolean apply(Dialect dialect) {
|
||||||
try {
|
try {
|
||||||
dialect.appendDatetimeFormat( new StringBuilder()::append, "" );
|
dialect.appendDatetimeFormat( new StringBuilderSqlAppender(), "" );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
|
@ -342,7 +343,7 @@ abstract public class DialectFeatureChecks {
|
||||||
public static class SupportsTruncateThroughCast implements DialectFeatureCheck {
|
public static class SupportsTruncateThroughCast implements DialectFeatureCheck {
|
||||||
public boolean apply(Dialect dialect) {
|
public boolean apply(Dialect dialect) {
|
||||||
try {
|
try {
|
||||||
dialect.appendDatetimeFormat( new StringBuilder()::append, "" );
|
dialect.appendDatetimeFormat( new StringBuilderSqlAppender(), "" );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
|
|
Loading…
Reference in New Issue