Search in sources :

Example 6 with Type

use of io.requery.meta.Type in project requery by requery.

the class UpdateOperation method evaluate.

@Override
public Scalar<Integer> evaluate(final QueryElement<Scalar<Integer>> query) {
    return new BaseScalar<Integer>(configuration.getWriteExecutor()) {

        @Override
        public Integer evaluate() {
            DefaultOutput output = new DefaultOutput(configuration, query);
            String sql = output.toSql();
            int result;
            TransactionProvider transactionProvider = configuration.getTransactionProvider();
            Set<Type<?>> types = query.entityTypes();
            try (TransactionScope scope = new TransactionScope(transactionProvider, types);
                Connection connection = configuration.getConnection()) {
                StatementListener listener = configuration.getStatementListener();
                try (PreparedStatement statement = prepare(sql, connection)) {
                    BoundParameters parameters = output.parameters();
                    mapParameters(statement, parameters);
                    listener.beforeExecuteUpdate(statement, sql, parameters);
                    result = statement.executeUpdate();
                    listener.afterExecuteUpdate(statement, result);
                    readGeneratedKeys(0, statement);
                }
                scope.commit();
            } catch (SQLException e) {
                throw new StatementExecutionException(e, sql);
            }
            return result;
        }
    };
}
Also used : BaseScalar(io.requery.query.BaseScalar) SQLException(java.sql.SQLException) DefaultOutput(io.requery.sql.gen.DefaultOutput) Connection(java.sql.Connection) PreparedStatement(java.sql.PreparedStatement) Type(io.requery.meta.Type)

Aggregations

Type (io.requery.meta.Type)6 Attribute (io.requery.meta.Attribute)3 ExpressionType (io.requery.query.ExpressionType)2 Connection (java.sql.Connection)2 SQLException (java.sql.SQLException)2 ClassName (com.squareup.javapoet.ClassName)1 CodeBlock (com.squareup.javapoet.CodeBlock)1 FieldSpec (com.squareup.javapoet.FieldSpec)1 MethodSpec (com.squareup.javapoet.MethodSpec)1 ParameterizedTypeName (com.squareup.javapoet.ParameterizedTypeName)1 TypeName (com.squareup.javapoet.TypeName)1 TypeSpec (com.squareup.javapoet.TypeSpec)1 CascadeAction (io.requery.CascadeAction)1 EntityCache (io.requery.EntityCache)1 ReferentialAction (io.requery.ReferentialAction)1 Cardinality (io.requery.meta.Cardinality)1 QueryAttribute (io.requery.meta.QueryAttribute)1 QueryExpression (io.requery.meta.QueryExpression)1 TypeBuilder (io.requery.meta.TypeBuilder)1 BooleanProperty (io.requery.proxy.BooleanProperty)1