public class PostgreSqlEngine extends AbstractDatabaseEngine
| Modifier and Type | Field and Description |
|---|---|
static String |
CONSTRAINT_NAME_ALREADY_EXISTS
Constraint name already exists.
|
static String |
NAME_ALREADY_EXISTS
Name is already used by an existing object.
|
static QueryExceptionHandler |
PG_QUERY_EXCEPTION_HANDLER
An instance of
QueryExceptionHandler specific for PostgreSQL engine, to be used in disambiguating
SQL exceptions. |
protected static String |
POSTGRESQL_DRIVER
The PostgreSQL JDBC driver.
|
static String |
TABLE_CAN_ONLY_HAVE_ONE_PRIMARY_KEY
Table can have only one primary key.
|
static String |
TABLE_OR_VIEW_DOES_NOT_EXIST
Table or view does not exist.
|
conn, currentSchema, DEFAULT_QUERY_EXCEPTION_HANDLER, dev, dialect, eh, entities, injector, logger, notificationLogger, properties, socketTimeoutExecutor, stmts, translator| Modifier | Constructor and Description |
|---|---|
|
PostgreSqlEngine(PdbProperties properties)
Creates a new PostgreSql connection.
|
protected |
PostgreSqlEngine(PdbProperties properties,
String driver)
Creates a new PostgreSql connection.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addColumn(DbEntity entity,
DbColumn... columns)
Adds the column to an existent table.
|
protected void |
addFks(DbEntity entity)
Adds the FKs.
|
protected void |
addIndexes(DbEntity entity)
Add the desired indexes.
|
protected void |
addPrimaryKey(DbEntity entity)
Add a primary key to the entity.
|
protected void |
addSequences(DbEntity entity)
Adds the necessary sequences.
|
protected boolean |
checkConnection(Connection conn)
Checks if the connection is alive.
|
protected MappedEntity |
createPreparedStatementForInserts(DbEntity entity)
Creates and gets the prepared statement that will be used for insertions.
|
protected ResultIterator |
createResultIterator(PreparedStatement ps)
Creates a specific
ResultIterator for the engine in place given a prepared statement. |
protected ResultIterator |
createResultIterator(Statement statement,
String sql)
Creates a specific
ResultIterator given the engine implementation. |
protected void |
createTable(DbEntity entity)
Creates the table.
|
protected long |
doPersist(PreparedStatement ps,
MappedEntity me,
boolean useAutoInc,
int lastBindPosition)
DB engine specific auxiliary method for
AbstractDatabaseEngine.persist(String, EntityEntry, boolean) to effectively perform
the persist action. |
protected void |
dropColumn(DbEntity entity,
String... columns)
Drops the column.
|
protected void |
dropSequences(DbEntity entity)
Drops the sequences of the entity.
|
protected void |
dropTable(DbEntity entity)
Drops the table.
|
protected int |
entityToPreparedStatement(DbEntity entity,
PreparedStatement ps,
EntityEntry entry,
boolean useAutoInc)
Translates the given entry entity to the prepared statement.
|
protected Properties |
getDBProperties()
Get the properties to be passed to the database connection that will be created.
|
protected QueryExceptionHandler |
getQueryExceptionHandler()
Gets the instance of
QueryExceptionHandler to be used in disambiguating SQL exceptions. |
Class<? extends AbstractTranslator> |
getTranslatorClass()
Gets the class that translates SQL bound to this engine.
|
boolean |
isStringAggDistinctCapable()
Checks if the engine supports using DISTINCT inside a string aggregation.
|
void |
setParameter(String name,
int index,
Object param,
DbColumnType paramType)
Sets the parameter on the specified index given its type.
|
protected void |
setSchema(String schema)
Sets the schema for the current
connection. |
protected DbColumnType |
toPdbType(int type,
String typeName)
Maps the database type to
DbColumnType. |
protected void |
updatePersistAutoIncSequence(MappedEntity mappedEntity,
long currentAutoIncVal)
Updates the autoInc sequence value after a persist operation.
|
addBatch, addEntity, beginTransaction, checkConnection, checkConnection, clearParameters, close, commentCharacter, commit, connect, containsEntity, createBatch, createBatch, createBatch, createBatch, createPreparedStatement, createPreparedStatement, createPreparedStatement, createPreparedStatement, createSelectStatement, dropEntity, dropEntity, dropFks, dropView, duplicate, entityToPreparedStatementForBatch, escapeCharacter, executePS, executePSUpdate, executeUpdate, executeUpdate, executeUpdateSilently, flush, getConnection, getDialect, getEntities, getEntities, getFinalJdbcConnection, getMetadata, getMetadata, getPreparedStatementForPersist, getPrivateKey, getProperties, getPSIterator, getPSIterator, getPSResultSet, getQueryMetadata, getQueryMetadata, getSchema, handleOperation, hasIdentityColumn, inject, isTransactionActive, iterator, iterator, iterator, iterator, iterator, iterator, loadEntity, objectToArray, persist, persist, preparedStatementExists, processResultIterator, query, query, query, query, reconnectExceptionally, removeEntity, removePreparedStatement, rollback, setExceptionHandler, setParameter, setParameters, setParameterValues, setTransactionIsolation, translate, translateType, updateEntityprotected static final String POSTGRESQL_DRIVER
public static final String NAME_ALREADY_EXISTS
public static final String TABLE_CAN_ONLY_HAVE_ONE_PRIMARY_KEY
public static final String TABLE_OR_VIEW_DOES_NOT_EXIST
public static final String CONSTRAINT_NAME_ALREADY_EXISTS
public static final QueryExceptionHandler PG_QUERY_EXCEPTION_HANDLER
QueryExceptionHandler specific for PostgreSQL engine, to be used in disambiguating
SQL exceptions.public PostgreSqlEngine(PdbProperties properties) throws DatabaseEngineException
properties - The properties for the database connection.DatabaseEngineException - When the connection fails.protected PostgreSqlEngine(PdbProperties properties, String driver) throws DatabaseEngineException
properties - The properties for the database connection.driver - The driver to connect to the database.DatabaseEngineException - When the connection fails.protected int entityToPreparedStatement(DbEntity entity, PreparedStatement ps, EntityEntry entry, boolean useAutoInc) throws DatabaseEngineException
AbstractDatabaseEngineentityToPreparedStatement in class AbstractDatabaseEngineentity - The entity.ps - The prepared statement.entry - The entry.DatabaseEngineException - if something occurs during the translation.public void setParameter(String name, int index, Object param, DbColumnType paramType) throws DatabaseEngineException, ConnectionResetException
DatabaseEnginesetParameter in interface DatabaseEnginesetParameter in class AbstractDatabaseEnginename - The prepared statement name.index - The index to set.param - The parameter to set.paramType - The type of the parameter being set.DatabaseEngineException - If something occurs setting the parameters.ConnectionResetException - If the connection was reset while trying to set the parameter.public boolean isStringAggDistinctCapable()
DatabaseEngineprotected void createTable(DbEntity entity) throws DatabaseEngineException
AbstractDatabaseEnginecreateTable in class AbstractDatabaseEngineentity - The entity.DatabaseEngineException - If something goes wrong while creating the table.protected void addPrimaryKey(DbEntity entity) throws DatabaseEngineException
AbstractDatabaseEngineaddPrimaryKey in class AbstractDatabaseEngineentity - The entity.DatabaseEngineException - If something goes wrong while creating the table.protected void addIndexes(DbEntity entity) throws DatabaseEngineException
AbstractDatabaseEngineaddIndexes in class AbstractDatabaseEngineentity - The entity.DatabaseEngineException - If something goes wrong while creating the table.protected void addSequences(DbEntity entity) throws DatabaseEngineException
AbstractDatabaseEngineaddSequences in class AbstractDatabaseEngineentity - The entity.DatabaseEngineException - If something goes wrong while creating the table.protected MappedEntity createPreparedStatementForInserts(DbEntity entity) throws DatabaseEngineException
AbstractDatabaseEnginecreatePreparedStatementForInserts in class AbstractDatabaseEngineentity - The entity.DatabaseEngineException - If something goes wrong while creating the table.protected void dropSequences(DbEntity entity) throws DatabaseEngineException
AbstractDatabaseEnginedropSequences in class AbstractDatabaseEngineentity - The entity.DatabaseEngineException - If something goes wrong dropping the sequences.protected void dropTable(DbEntity entity) throws DatabaseEngineException
AbstractDatabaseEnginedropTable in class AbstractDatabaseEngineentity - The entity.DatabaseEngineException - If something goes wrong dropping the sequences.protected void dropColumn(DbEntity entity, String... columns) throws DatabaseEngineException
AbstractDatabaseEnginedropColumn in class AbstractDatabaseEngineentity - The entity.columns - The column name to drop.DatabaseEngineException - If something goes wrong dropping the sequences.protected void addColumn(DbEntity entity, DbColumn... columns) throws DatabaseEngineException
AbstractDatabaseEngineaddColumn in class AbstractDatabaseEngineentity - The entity that represents the table.columns - The db column to add.DatabaseEngineException - If something goes wrong adding columns.public Class<? extends AbstractTranslator> getTranslatorClass()
AbstractDatabaseEnginegetTranslatorClass in class AbstractDatabaseEngineprotected long doPersist(PreparedStatement ps, MappedEntity me, boolean useAutoInc, int lastBindPosition) throws Exception
AbstractDatabaseEngineAbstractDatabaseEngine.persist(String, EntityEntry, boolean) to effectively perform
the persist action.doPersist in class AbstractDatabaseEngineps - The PreparedStatement to use in the persist operationme - The mapped entity on which to persist.useAutoInc - Whether to use autoInc.lastBindPosition - The position (1-based) of the last bind parameter that was filled in the prepared statement.0 if there's no auto generated value). If the table has more
than 1 column with auto generated values, then it will return the first column found.Exception - if any problem occurs while persisting.protected void updatePersistAutoIncSequence(MappedEntity mappedEntity, long currentAutoIncVal)
mappedEntity - The mapped entity to for which to update the autoInc sequence.currentAutoIncVal - The current value for the autoInc column.protected void addFks(DbEntity entity) throws DatabaseEngineException
AbstractDatabaseEngineaddFks in class AbstractDatabaseEngineentity - The entity.DatabaseEngineException - If something goes wrong creating the FKs.protected Properties getDBProperties()
AbstractDatabaseEngineAbstractDatabaseEngine
implementation to specify them. This is used, for instance, to set the database connection timeout.getDBProperties in class AbstractDatabaseEngineprotected boolean checkConnection(Connection conn)
AbstractDatabaseEnginecheckConnection in class AbstractDatabaseEngineconn - The connection to test.protected void setSchema(String schema) throws DatabaseEngineException
AbstractDatabaseEngineconnection.setSchema in class AbstractDatabaseEngineDatabaseEngineException - If schema doesn't exist, a database access error occurs or this method
is called on a closed connection.protected DbColumnType toPdbType(int type, String typeName)
AbstractDatabaseEngineDbColumnType. If there's no mapping a DbColumnType.UNMAPPED is returned.toPdbType in class AbstractDatabaseEnginetype - The SQL type from Types.typeName - The native database type name. It provides additional information for
derived classes to resolve types unmapped here.DbColumnType.protected ResultIterator createResultIterator(Statement statement, String sql) throws DatabaseEngineException
AbstractDatabaseEngineResultIterator given the engine implementation.createResultIterator in class AbstractDatabaseEnginestatement - The statement.sql - The SQL sentence.DatabaseEngineException - If a database access error occurs.protected ResultIterator createResultIterator(PreparedStatement ps) throws DatabaseEngineException
AbstractDatabaseEngineResultIterator for the engine in place given a prepared statement.createResultIterator in class AbstractDatabaseEngineps - The prepared statement.DatabaseEngineException - If a database access error occurs.protected QueryExceptionHandler getQueryExceptionHandler()
AbstractDatabaseEngineQueryExceptionHandler to be used in disambiguating SQL exceptions.getQueryExceptionHandler in class AbstractDatabaseEngineQueryExceptionHandler.Copyright © 2021 Feedzai. All rights reserved.