Package io.ebean
Interface UpdateQuery<T>
-
- Type Parameters:
T
- The type of entity bean being updated
public interface UpdateQuery<T>
An update query typically intended to perform a bulk update of many rows that match the query.Also note that you can also just use a raw SQL update via
SqlUpdate
which is pretty light and simple. This UpdateQuery is more for the cases where we want to build the where expression of the update using theExpressionList
"Criteria API" that is used with a normal ORM query.Example: Simple update
int rows = DB.update(Customer.class) .set("status", Customer.Status.ACTIVE) .set("updtime", new Timestamp(System.currentTimeMillis())) .where() .gt("id", 1000) .update();
sql update o_customer set status=?, updtime=? where id > ?
Note that if the where() clause contains a join then the SQL update changes to use a
WHERE ID IN ()
form.Example: Update with a JOIN
In this example the expression
.eq("billingAddress.country", nz)
requires a join to the address table.int rows = DB.update(Customer.class) .set("status", Customer.Status.ACTIVE) .set("updtime", new Timestamp(System.currentTimeMillis())) .where() .eq("status", Customer.Status.NEW) .eq("billingAddress.country", nz) .gt("id", 1000) .update();
sql update o_customer set status=?, updtime=? where id in ( select t0.id c0 from o_customer t0 left join o_address t1 on t1.id = t0.billing_address_id where t0.status = ? and t1.country_code = ? and t0.id > ? )
- See Also:
SqlUpdate
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description UpdateQuery<T>
set(String property, Object value)
Set the value of a property.UpdateQuery<T>
setLabel(String label)
Set the label on the update query.UpdateQuery<T>
setNull(String property)
Set the property to be null.UpdateQuery<T>
setProfileLocation(ProfileLocation profileLocation)
Set the profile location of this update query.UpdateQuery<T>
setRaw(String propertyExpression)
Set using a property expression that does not need any bind values.UpdateQuery<T>
setRaw(String propertyExpression, Object... values)
Set using a property expression that can contain?
bind value placeholders.int
update()
Execute the update returning the number of rows updated.ExpressionList<T>
where()
Return the query expression list to add predicates to.
-
-
-
Method Detail
-
set
UpdateQuery<T> set(String property, Object value)
Set the value of a property.int rows = DB.update(Customer.class) .set("status", Customer.Status.ACTIVE) .set("updtime", new Timestamp(System.currentTimeMillis())) .where() .gt("id", 1000) .update();
- Parameters:
property
- The bean property to be setvalue
- The value to set the property to
-
setNull
UpdateQuery<T> setNull(String property)
Set the property to be null.int rows = DB.update(Customer.class) .setNull("notes") .where() .gt("id", 1000) .update();
- Parameters:
property
- The property to be set to null.
-
setRaw
UpdateQuery<T> setRaw(String propertyExpression)
Set using a property expression that does not need any bind values.The property expression typically contains database functions.
int rows = DB.update(Customer.class) .setRaw("status = coalesce(status, 'A')") .where() .gt("id", 1000) .update();
- Parameters:
propertyExpression
- A property expression
-
setRaw
UpdateQuery<T> setRaw(String propertyExpression, Object... values)
Set using a property expression that can contain?
bind value placeholders.For each
?
in the property expression there should be a matching bind value supplied.int rows = DB.update(Customer.class) .setRaw("status = coalesce(status, ?)", Customer.Status.ACTIVE) .where() .gt("id", 1000) .update();
- Parameters:
propertyExpression
- A raw property expressionvalues
- The values to bind with the property expression
-
setProfileLocation
UpdateQuery<T> setProfileLocation(ProfileLocation profileLocation)
Set the profile location of this update query. This is used to relate query execution metrics back to a location like a specific line of code.
-
setLabel
UpdateQuery<T> setLabel(String label)
Set the label on the update query.
-
where
ExpressionList<T> where()
Return the query expression list to add predicates to.
-
update
int update()
Execute the update returning the number of rows updated.
-
-