package io.ebeaninternal.server.persist.dmlbind;

import io.ebeaninternal.server.core.PersistRequestBean;
import io.ebeaninternal.server.deploy.BeanProperty;

import java.sql.SQLException;

Request object passed to bindables.
/** * Request object passed to bindables. */
public interface BindableRequest {
Set the id for use with summary level logging.
/** * Set the id for use with summary level logging. */
void setIdValue(Object idValue);
Bind the value to a PreparedStatement.

Takes into account logicalType to dbType conversion if required.

Returns the value that was bound (and was potentially converted from logicalType to dbType.

/** * Bind the value to a PreparedStatement. * <p> * Takes into account logicalType to dbType conversion if required. * </p> * <p> * Returns the value that was bound (and was potentially converted from * logicalType to dbType. * </p> */
void bind(Object value, BeanProperty prop) throws SQLException;
Bind a raw value. Used to bind the discriminator column.
/** * Bind a raw value. Used to bind the discriminator column. */
void bind(Object value, int sqlType) throws SQLException;
Bind a raw value with a placeHolder to put into the transaction log.
/** * Bind a raw value with a placeHolder to put into the transaction log. */
void bindNoLog(Object value, int sqlType, String logPlaceHolder) throws SQLException;
Bind the value to the preparedStatement without logging.
/** * Bind the value to the preparedStatement without logging. */
void bindNoLog(Object value, BeanProperty prop) throws SQLException;
Return the original PersistRequest.
/** * Return the original PersistRequest. */
PersistRequestBean<?> getPersistRequest();
Return the system current time in millis. This is expected to the same time used by multiple generated properties for a single request.
/** * Return the system current time in millis. This is expected to the same time used * by multiple generated properties for a single request. */
long now();
Return true if this is an update request.
/** * Return true if this is an update request. */
boolean isUpdate(); }