All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ebean.Update Maven / Gradle / Ivy

There is a newer version: 15.8.1
Show newest version
package io.ebean;

/**
 * An Insert Update or Delete statement.
 * 

* Generally a named update will be defined on the entity bean. This will take * the form of either an actual sql insert update delete statement or a similar * statement with bean name and property names in place of database table and * column names. The statement will likely include named parameters. *

*

* The following is an example of named updates on an entity bean. *

*
{@code
 *    ...
 *   @NamedUpdates(value = {
 *     @NamedUpdate(
 *       name = "setTitle",
 *       notifyCache = false,
 *       update = "update topic set title = :title, postCount = :count where id = :id"),
 *    @NamedUpdate(
 *       name = "setPostCount",
 *       notifyCache = false,
 *       update = "update f_topic set post_count = :postCount where id = :id"),
 *    @NamedUpdate(
 *       name = "incrementPostCount",
 *       notifyCache = false,
 *       update = "update Topic set postCount = postCount + 1 where id = :id")
 *       //update = "update f_topic set post_count = post_count + 1 where id = :id")
 *   })
 *   @Entity
 *   @Table(name = "f_topic")
 *   public class Topic {
 *     ...
 *   }
 * }
* *

* The following show code that would use a named update on the Topic entity * bean. *

*

*

{@code
 *
 * Update update = DB.createUpdate(Topic.class, "incrementPostCount");
 * update.setParameter("id", 1);
 * int rows = update.execute();
 *
 * }
* * @param the type of entity beans inserted updated or deleted */ public interface Update { /** * Return the name if it is a named update. */ String getName(); /** * Set this to false if you do not want the cache to invalidate related * objects. *

* If you don't set this Ebean will automatically invalidate the appropriate * parts of the "L2" server cache. *

*/ Update setNotifyCache(boolean notifyCache); /** * Set a timeout for statement execution. *

* This will typically result in a call to setQueryTimeout() on a * preparedStatement. If the timeout occurs an exception will be thrown - this * will be a SQLException wrapped up in a PersistenceException. *

* * @param secs the timeout in seconds. Zero implies unlimited. */ Update setTimeout(int secs); /** * Execute the statement returning the number of rows modified. */ int execute(); /** * Set an ordered bind parameter. *

* position starts at value 1 (not 0) to be consistent with PreparedStatement. *

*

* Set a value for each ? you have in the sql. *

* * @param position the index position of the parameter starting with 1. * @param value the parameter value to bind. */ Update set(int position, Object value); /** * Set and ordered bind parameter (same as bind). * * @param position the index position of the parameter starting with 1. * @param value the parameter value to bind. */ Update setParameter(int position, Object value); /** * Set an ordered parameter that is null. The JDBC type of the null must be * specified. *

* position starts at value 1 (not 0) to be consistent with PreparedStatement. *

*/ Update setNull(int position, int jdbcType); /** * Set an ordered parameter that is null (same as bind). */ Update setNullParameter(int position, int jdbcType); /** * Set a named parameter. Named parameters have a colon to prefix the name. *

* A more succinct version of setParameter() to be consistent with Query. *

* * @param name the parameter name. * @param value the parameter value. */ Update set(String name, Object value); /** * Bind a named parameter (same as bind). */ Update setParameter(String name, Object param); /** * Set a named parameter that is null. The JDBC type of the null must be * specified. *

* A more succinct version of setNullParameter(). *

* * @param name the parameter name. * @param jdbcType the type of the property being bound. */ Update setNull(String name, int jdbcType); /** * Bind a named parameter that is null (same as bind). */ Update setNullParameter(String name, int jdbcType); /** * Set a label meaning performance metrics will be collected for the execution of this update. */ Update setLabel(String label); /** * Return the sql that is actually executed. */ String getGeneratedSql(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy