use of org.hibernate.sql.exec.spi.JdbcOperation in project hibernate-orm by hibernate.
the class AbstractSqlAstTranslator method translate.
@Override
public T translate(JdbcParameterBindings jdbcParameterBindings, QueryOptions queryOptions) {
try {
this.jdbcParameterBindings = jdbcParameterBindings;
this.lockOptions = queryOptions.getLockOptions().makeCopy();
this.limit = queryOptions.getLimit() == null ? null : queryOptions.getLimit().makeCopy();
final JdbcOperation jdbcOperation;
if (statement instanceof DeleteStatement) {
jdbcOperation = translateDelete((DeleteStatement) statement);
} else if (statement instanceof UpdateStatement) {
jdbcOperation = translateUpdate((UpdateStatement) statement);
} else if (statement instanceof InsertStatement) {
jdbcOperation = translateInsert((InsertStatement) statement);
} else if (statement instanceof SelectStatement) {
jdbcOperation = translateSelect((SelectStatement) statement);
} else {
throw new IllegalArgumentException("Unexpected statement!");
}
if (jdbcParameterBindings != null && CollectionHelper.isNotEmpty(getFilterJdbcParameters())) {
for (FilterJdbcParameter filterJdbcParameter : getFilterJdbcParameters()) {
jdbcParameterBindings.addBinding(filterJdbcParameter.getParameter(), filterJdbcParameter.getBinding());
}
}
return (T) jdbcOperation;
} finally {
cleanup();
}
}
use of org.hibernate.sql.exec.spi.JdbcOperation in project hibernate-orm by hibernate.
the class AnsiTrimEmulationFunctionTest method render.
private String render(Dialect dialect, TrimFunction function, TrimSpec trimSpec, char trimCharacter, String trimSource) {
SessionFactoryImplementor factory = Mockito.mock(SessionFactoryImplementor.class);
JdbcServices jdbcServices = Mockito.mock(JdbcServices.class);
Mockito.doReturn(jdbcServices).when(factory).getJdbcServices();
Mockito.doReturn(dialect).when(jdbcServices).getDialect();
StandardSqlAstTranslator<JdbcOperation> walker = new StandardSqlAstTranslator<>(factory, null);
List<SqlAstNode> sqlAstArguments = new ArrayList<>();
sqlAstArguments.add(new TrimSpecification(trimSpec));
sqlAstArguments.add(new QueryLiteral<>(trimCharacter, new BasicTypeImpl<>(CharacterJavaType.INSTANCE, CharJdbcType.INSTANCE)));
sqlAstArguments.add(new SelfRenderingExpression() {
@Override
public void renderToSql(SqlAppender sqlAppender, SqlAstTranslator<?> walker, SessionFactoryImplementor sessionFactory) {
sqlAppender.appendSql(trimSource);
}
@Override
public JdbcMappingContainer getExpressionType() {
return null;
}
});
function.render(walker, sqlAstArguments, walker);
return walker.getSql();
}
Aggregations