public class DBPersistenceManager
extends oracle.maf.impl.cdm.persistence.manager.AbstractPersistenceManager
Constructor and Description |
---|
DBPersistenceManager() |
Modifier and Type | Method and Description |
---|---|
void |
closeResultSet(java.sql.ResultSet set) |
void |
commmit()
Execute Commit statement on DB connection
|
StringBuffer |
constructOrderByClause(StringBuffer sql,
ClassMappingDescriptor classMappingDescriptor)
This method sets order by clause as defined in <order-by> element in mapping XML file.
|
StringBuffer |
constructWhereClause(StringBuffer sql,
BindParamInfo bindParamInfo)
Add SQL WHERE clause to SQL statement passed in.
|
StringBuffer |
constructWhereClause(StringBuffer sql,
java.util.List<BindParamInfo> bindParamInfos)
Add SQL WHERE clause to SQL statement passed in.
|
StringBuffer |
constructWhereClause(StringBuffer sql,
java.util.List<BindParamInfo> bindParamInfos,
String operator)
Add SQL WHERE clause to SQL statement passed in.
|
<E extends Entity> |
createEntitiesFromResultSet(java.sql.ResultSet resultSet,
java.util.List<AttributeMapping> attributeMappings)
Create a list of entity instances based on the SQL ResultSet and the attribute mappings
of the entity class.
|
void |
deleteAllInParent(Class entityClass,
Entity parent,
AttributeMappingOneToMany oneToManyMapping) |
void |
deleteAllInParent(Class entityClass,
Entity parent,
String accessorAttribute) |
void |
deleteAllRows(Class entityClass)
Deletes all rows in the table that maps to the entityClass.
|
void |
deleteAllRows(String tableName,
boolean doCommit)
Deletes all rows in specified table
|
void |
deleteRows(Class entityClass,
java.util.List<BindParamInfo> bindParamInfos)
Deletes rows in the table that maps to the entityClass.
|
void |
executeSqlDml(String sql,
java.util.List<BindParamInfo> bindParamInfos,
boolean doCommit)
Executes a SQL INSERT, UPDATE or DELETE statement, with optionally a set
of bind parameters.
|
void |
executeSqlScript(String script,
boolean doCommit)
Execute a SQL script
|
java.sql.ResultSet |
executeSqlSelect(String sql,
java.util.List<BindParamInfo> bindParamInfos)
Executes SQL SELECT statement with optionally a list of bind parameters
The number and sequence of bind parameters passed in should match the
number and sequence of bind parameter references in the SQL statement.
|
<E extends Entity> |
find(Class entityClass,
java.util.Map<String,String> searchValues)
Executes a SELECT statement on the table mapped to the entity class, returning all columns.
|
<E extends Entity> |
find(Class entityClass,
String searchValue)
Returns a set of rows by applying the searchValue to applicable columns in the table.
|
<E extends Entity> |
find(Class entityClass,
String searchValue,
java.util.List<String> attrNamesToSearch)
Returns a set of rows by applying the searchValue to applicable columns in the table.
|
<E extends Entity> |
find(String entityClass,
java.util.List<BindParamInfo> bindParamInfos)
Executes a SELECT statement on the table mapped to the entity class, returning all columns.
|
<E extends Entity> |
findAll(Class entityClass) |
<E extends Entity> |
findAll(String entityClass)
Executes a SELECT statement on the table mapped to this entity, returning all columns
without a WHERE clause.
|
<E extends Entity> |
findAllInParent(Class entityClass,
Entity parent,
AttributeMappingOneToMany oneToManyMapping) |
<E extends Entity> |
findAllInParent(Class entityClass,
Entity parent,
String accessorAttribute) |
Entity |
findByKey(Class entityClass,
Object[] key)
Finds an entity instance by ket.
|
Entity |
findByKey(Class entityClass,
Object[] key,
boolean checkEntityCache)
Finds an entity instance by ket.
|
Entity |
getAsParent(Class entityClass,
Entity child,
AttributeMappingOneToOne oneToOneMapping) |
Entity |
getAsParent(Class entityClass,
Entity child,
String accessorAttribute) |
Object |
getAttributeValueFromResultSet(java.sql.ResultSet resultSet,
AttributeMapping mapping,
Class entityClass)
Convert the column value returned by a SELECT statement to the Java Type expected by the corresponding
entity attribute
|
Object[] |
getAttributeValuesFromResultSet(java.sql.ResultSet resultSet,
java.util.List<AttributeMapping> mappings,
Class entityClass) |
java.math.BigDecimal |
getBigDecimalValue(String value)
Converts string value to BigDecimal.
|
Object |
getColumnValueFromResultSet(java.sql.ResultSet resultSet,
AttributeMapping mapping,
Class entityClass)
Get the column value returned by a SELECT statement for a specific entity attribute
|
Object |
getMaxColumnValue(String tableName,
String columnName) |
Object |
getMaxValue(Class entityClass,
String attrName) |
String |
getSqlColumnNamesCommaSeparated(java.util.List<BindParamInfo> bindParamInfos)
Helper method that returns comma-separated list of SQL column names that can
be used in INSERT or SELECT statement
|
StringBuffer |
getSqlInsertIntoPart(java.util.List<BindParamInfo> bindParamInfos)
Helper method to create the INSERT INTO part of the SQL statement.
|
StringBuffer |
getSqlInsertOrReplaceIntoPart(java.util.List<BindParamInfo> bindParamInfos)
Helper method to create the INSERT OR REPLACE INTO part of the SQL statement.
|
String |
getSqlInsertValuesPart(java.util.List<BindParamInfo> bindParamInfos)
Returns the VALUES(?,?,?) part of SQL INSERT statement.
|
StringBuffer |
getSqlSelectFromPart(ClassMappingDescriptor descriptor)
Helper method to create SELECT ..
|
StringBuffer |
getSqlUpdateStatement(java.util.List<BindParamInfo> bindParamInfos)
Returns SQL statement of the form
|
void |
initDBIfNeeded()
Helper method that checks whether the SQLite database already exists on the mobile device.
|
void |
insertEntity(Entity entity,
boolean doCommit)
Persists the entity using SQL INSERT Statement.
|
void |
insertRow(java.util.List<BindParamInfo> bindParamInfos,
boolean doCommit)
Inserts a row in SQL database using bindPramInfos passed in
|
boolean |
isEntityExixtsInDB(Entity entity)
Cheks whether there is a corresponding row in the database for the entity passed in.
|
boolean |
isRowExistsInDB(BindParamInfo bindParamInfo)
Cheks whether there is a corresponding row in the database for the
BindParamInfo passed in.
|
boolean |
isRowExistsInDB(java.util.List<BindParamInfo> bindParamInfos)
Cheks whether there is a corresponding row in the database for the
BindParamInfos passed in.
|
void |
mergeChildren(Entity parentEntity,
boolean doCommit)
Insert or update rows for children as defined in one-to-many ammpings for parent entity
|
void |
mergeEntity(Entity entity,
boolean doCommit)
Persist the entity using SQL INSERT or UPDATE Statement.
|
void |
mergeRow(java.util.List<BindParamInfo> bindParamInfos,
boolean doCommit)
Inserts or updates a row in SQL database using bindPramInfos passed in.
|
void |
removeEntity(Entity entity,
boolean doCommit)
Delete the row that matches the entity in SQL database
|
void |
resetEntity(Entity entity)
Resets entity attributes with latest values from database row
|
void |
rollback()
Execute Rollback statement on DB connection
|
void |
setSqlBindParams(java.util.List<BindParamInfo> bindParamInfos,
java.sql.PreparedStatement statement,
boolean pkValueAsLast)
Sets the values of bind parameters on the SQL statement
|
void |
updateEntity(Entity entity,
boolean doCommit)
Persist the entity using SQL UPDATE Statement
|
void |
updateRow(java.util.List<BindParamInfo> bindParamInfos,
boolean doCommit)
Updates a row SQL database using bindPramInfos passed in
The columns that will be updated are based on the list of
bind parameters passed in.
|
public Object getMaxValue(Class entityClass, String attrName)
public Object getMaxColumnValue(String tableName, String columnName)
public java.sql.ResultSet executeSqlSelect(String sql, java.util.List<BindParamInfo> bindParamInfos)
sql
- bindParamInfos
- public void executeSqlDml(String sql, java.util.List<BindParamInfo> bindParamInfos, boolean doCommit)
sql
- bindParamInfos
- doCommit
- public void mergeEntity(Entity entity, boolean doCommit)
entity
- doCommit
- public void insertEntity(Entity entity, boolean doCommit)
entity
- doCommit
- public void insertRow(java.util.List<BindParamInfo> bindParamInfos, boolean doCommit)
bindParamInfos
- doCommit
- public void mergeRow(java.util.List<BindParamInfo> bindParamInfos, boolean doCommit)
bindParamInfos
- doCommit
- public void deleteRows(Class entityClass, java.util.List<BindParamInfo> bindParamInfos)
entityClass
- public void deleteAllRows(Class entityClass)
entityClass
- public void deleteAllRows(String tableName, boolean doCommit)
tableName
- doCommit
- public void removeEntity(Entity entity, boolean doCommit)
entity
- doCommit
- public void updateEntity(Entity entity, boolean doCommit)
entity
- doCommit
- public void updateRow(java.util.List<BindParamInfo> bindParamInfos, boolean doCommit)
bindParamInfos
- doCommit
- public StringBuffer getSqlInsertIntoPart(java.util.List<BindParamInfo> bindParamInfos)
bindParamInfos
- public StringBuffer getSqlInsertOrReplaceIntoPart(java.util.List<BindParamInfo> bindParamInfos)
bindParamInfos
- public StringBuffer getSqlUpdateStatement(java.util.List<BindParamInfo> bindParamInfos)
UPDATE TABLE_NAME SET COLUMN_NAME1=?, COLUMN_NAME2=? WHERE PK_COLUMN_NAME=?For each BindParamInfo in the list, a column is added to the UPDATE statement, except for the primary key BindParamInfo which is used to construct the WHERE clause.
bindParamInfos
- public void setSqlBindParams(java.util.List<BindParamInfo> bindParamInfos, java.sql.PreparedStatement statement, boolean pkValueAsLast) throws java.sql.SQLException
bindParamInfos
- statement
- java.sql.SQLException
public String getSqlInsertValuesPart(java.util.List<BindParamInfo> bindParamInfos)
bindParamInfos
- public String getSqlColumnNamesCommaSeparated(java.util.List<BindParamInfo> bindParamInfos)
bindParamInfos
- public boolean isEntityExixtsInDB(Entity entity)
entity
- public boolean isRowExistsInDB(BindParamInfo bindParamInfo)
entity
- public boolean isRowExistsInDB(java.util.List<BindParamInfo> bindParamInfos)
entity
- public void closeResultSet(java.sql.ResultSet set)
public <E extends Entity> java.util.List<E> findAll(Class entityClass)
public Entity findByKey(Class entityClass, Object[] key)
findByKey
in interface oracle.maf.impl.cdm.persistence.manager.PersistenceManager
findByKey
in class oracle.maf.impl.cdm.persistence.manager.AbstractPersistenceManager
entityClass
- key
- public Entity findByKey(Class entityClass, Object[] key, boolean checkEntityCache)
entityClass
- key
- checkEntityCache
- public <E extends Entity> java.util.List<E> findAll(String entityClass)
entityClass
- public java.math.BigDecimal getBigDecimalValue(String value)
value
- public <E extends Entity> java.util.List<E> find(Class entityClass, String searchValue)
entityClass
- searchValue
- public <E extends Entity> java.util.List<E> find(Class entityClass, String searchValue, java.util.List<String> attrNamesToSearch)
entityClass
- searchValue
- attrNamesToSearch
- list of attribute names to search on. If empty or null, all attributes with matching type
will be searched onpublic <E extends Entity> java.util.List<E> find(String entityClass, java.util.List<BindParamInfo> bindParamInfos)
entityClass
- public <E extends Entity> java.util.List<E> find(Class entityClass, java.util.Map<String,String> searchValues)
entityClass
- public StringBuffer constructWhereClause(StringBuffer sql, BindParamInfo bindParamInfo)
sql
- bindParamInfo
- public StringBuffer constructWhereClause(StringBuffer sql, java.util.List<BindParamInfo> bindParamInfos)
sql
- bindParamInfo
- public StringBuffer constructWhereClause(StringBuffer sql, java.util.List<BindParamInfo> bindParamInfos, String operator)
sql
- bindParamInfos
- public StringBuffer getSqlSelectFromPart(ClassMappingDescriptor descriptor)
descriptor
- public <E extends Entity> java.util.List<E> createEntitiesFromResultSet(java.sql.ResultSet resultSet, java.util.List<AttributeMapping> attributeMappings)
resultSet
- attributeMappings
- public Object getAttributeValueFromResultSet(java.sql.ResultSet resultSet, AttributeMapping mapping, Class entityClass)
resultSet
- mapping
- entityClass
- public Object[] getAttributeValuesFromResultSet(java.sql.ResultSet resultSet, java.util.List<AttributeMapping> mappings, Class entityClass)
public Object getColumnValueFromResultSet(java.sql.ResultSet resultSet, AttributeMapping mapping, Class entityClass)
resultSet
- mapping
- entityClass
- public void initDBIfNeeded()
db.name=HR.db db.encrypt=false db.password.prefname=HRPassword persistence.mapping.xml=META-INF/tlMap.xml ddl.script=META-INF/hr.sqlThe database is created with PRAGMA auto_vacuum = FULL to ensure that the DB file will shrink in size when rows are deleted from a table. See http://www.sqlite.org/pragma.html#pragma_auto_vacuum for more info.
oracle.maf.impl.cdm.lifecycle.InitDBLifeCycleListener
public void executeSqlScript(String script, boolean doCommit)
script
- doCommit
- public void commmit()
public void rollback()
public StringBuffer constructOrderByClause(StringBuffer sql, ClassMappingDescriptor classMappingDescriptor)
<order-by>HIRE_DATE DEC, LAST_NAME</order-by>
sql
- classMappingDescriptor
- public void mergeChildren(Entity parentEntity, boolean doCommit)
parentEntity
- doCommit
- public <E extends Entity> java.util.List<E> findAllInParent(Class entityClass, Entity parent, String accessorAttribute)
public <E extends Entity> java.util.List<E> findAllInParent(Class entityClass, Entity parent, AttributeMappingOneToMany oneToManyMapping)
public void deleteAllInParent(Class entityClass, Entity parent, String accessorAttribute)
public void deleteAllInParent(Class entityClass, Entity parent, AttributeMappingOneToMany oneToManyMapping)
public Entity getAsParent(Class entityClass, Entity child, AttributeMappingOneToOne oneToOneMapping)
public void resetEntity(Entity entity)
entity
-