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

io.ebean.RawSqlBuilder Maven / Gradle / Ivy

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

import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * Builds RawSql instances from a SQL string and column mappings.
 * 

* Note that RawSql can also be defined in ebean-orm.xml files and be used as a * named query. *

* * @see RawSql */ public interface RawSqlBuilder { /** * Create and return a RawSql object based on the resultSet and list of properties the columns in * the resultSet map to. *

* The properties listed in the propertyNames must be in the same order as the columns in the * resultSet. */ static RawSql resultSet(ResultSet resultSet, String... propertyNames) { return XBootstrapService.rawSql().resultSet(resultSet, propertyNames); } /** * Create and return a SqlRow based on the resultSet with dbTrueValue and binaryOptimizedUUID options. */ static SqlRow sqlRow(ResultSet resultSet, final String dbTrueValue, boolean binaryOptimizedUUID) throws SQLException { return XBootstrapService.rawSql().sqlRow(resultSet, dbTrueValue, binaryOptimizedUUID); } /** * Return an unparsed RawSqlBuilder. Unlike a parsed one this query can not be * modified - so no additional WHERE or HAVING expressions can be added to * this query. */ static RawSqlBuilder unparsed(String sql) { return XBootstrapService.rawSql().unparsed(sql); } /** * Return a RawSqlBuilder parsing the sql. *

* The sql statement will be parsed so that Ebean can determine where it can * insert additional WHERE or HAVING expressions. *

*

* Additionally the selected columns are parsed to determine the column * ordering. This also means additional checks can be made with the column * mapping - specifically we can check that all columns are mapped and that * correct column names are entered into the mapping. *

*/ static RawSqlBuilder parse(String sql) { return XBootstrapService.rawSql().parsed(sql); } /** * Set the mapping of a DB Column to a bean property. *

* For Unparsed SQL the columnMapping MUST be defined in the same order that * the columns appear in the SQL statement. *

* * @param dbColumn the DB column that we are mapping to a bean property * @param propertyName the bean property that we are mapping the DB column to. */ RawSqlBuilder columnMapping(String dbColumn, String propertyName); /** * Ignore this DB column. It is not mapped to any bean property. */ RawSqlBuilder columnMappingIgnore(String dbColumn); /** * Modify any column mappings with the given table alias to have the path prefix. *

* For example modify all mappings with table alias "c" to have the path prefix "customer". *

*

* For the "Root type" you don't need to specify a tableAliasMapping. *

*/ RawSqlBuilder tableAliasMapping(String tableAlias, String path); /** * Create the immutable RawSql object. Do this after all the column mapping * has been defined. */ RawSql create(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy