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

com.avaje.ebean.Update Maven / Gradle / Ivy

There is a newer version: 8.1.1
Show newest version
package com.avaje.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. *

* *
 *  ...
 * @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. *

* *
 * Update<Topic> update = Ebean.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); /** * Return the sql that is actually executed. */ String getGeneratedSql(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy