public class DBDataWriter<T> extends java.lang.Object implements DataWriter<T>
Modifier and Type | Class and Description |
---|---|
static class |
DBDataWriter.Options |
DataWriter.DataModificationSequence
Modifier and Type | Field and Description |
---|---|
protected boolean |
batchEnabled |
protected java.lang.String |
catalog
Target DB catalog
|
protected Converter |
converter |
protected java.util.Map<java.lang.String,java.util.Collection<java.util.Collection>> |
createdBatch |
protected int |
createdCount |
protected java.util.List<DomainObject<T>> |
createdObjects |
protected DataWriter.DataModificationSequence[] |
dataModificationSequence
Set sequence or disable update/insert/delete
|
protected DBServices |
dbServices
This is JDBC utility
|
protected static java.lang.String |
DOT |
protected static java.lang.Object[] |
EMPTY_ARG |
protected boolean |
exceptionOnEmptyObjectList |
protected java.lang.String |
fullTableName |
protected java.util.List<StatementHolder> |
generatedSQL |
protected boolean |
generateSQLOnly
Do not execute INSERTS/UPDATES/DELETES - just generate SQL and parameters
|
protected boolean |
lowerCaseKeywords |
protected DBMetaData<T> |
metaData |
protected java.util.Map<java.lang.String,java.util.Collection<java.util.Collection>> |
modifiedBatch |
protected java.lang.String |
modifiedCatalog |
protected int |
modifiedCount |
protected java.util.List<DomainObject<T>> |
modifiedObjects |
protected java.lang.String |
modifiedSchema |
protected java.lang.String |
modifiedTable |
protected boolean |
noFullColumnName
Some databases (like hsqldb) failed when UPDATE statement is using TABLE_NAME.COLUMN_NAME in SET clause.
|
protected AbstractDomainObjectFactory<T> |
objectFactory |
protected OptimisticLock |
optimisticLock
Current Optimistic lock setting.
|
protected java.util.Map<java.lang.Enum<?>,java.lang.Object> |
options |
protected boolean |
overrideCatalogName
If overrideCatalogName == true and catalog from metaData is null than use catalog member variable
|
protected java.lang.Throwable |
persistenceError |
protected boolean |
readOnly
Disable DB modifications
|
protected java.util.Map<java.lang.String,java.util.Collection<java.util.Collection>> |
removedBatch |
protected int |
removedCount |
protected java.util.List<DomainObject<T>> |
removedObjects |
protected java.lang.String |
schema
Target DB schema
|
protected java.lang.String |
table
Target DB Table
|
protected boolean |
throwFailedInsertException |
protected boolean |
throwMissingFieldException
Throw Exception or ignore if DomainObject has less fields than mapping
|
protected boolean |
throwOptimisticLockDeleteException |
protected boolean |
throwOptimisticLockUpdateException |
protected boolean |
updatableTablePKOnly
In case of multiple tables get PrimaryKey only for updatable table
|
Constructor and Description |
---|
DBDataWriter() |
DBDataWriter(DBServices dbServices) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
createObject(DomainObject domainObject) |
protected boolean |
createObjects() |
protected void |
executeBatch() |
java.lang.String |
getCatalog()
Getter for property catalog.
|
Converter |
getConverter() |
int |
getCreatedCount()
Getter for property createdCount.
|
DataWriter.DataModificationSequence[] |
getDataModificationSequence()
Getter for property dataModificationSequence.
|
DataWriter.DataModificationSequence |
getDataModificationSequence(int index)
Indexed getter for property dataModificationSequence.
|
DBServices |
getDBServices()
Getter for property dbServices.
|
java.util.List<StatementHolder> |
getGeneratedSQL()
Getter for property generatedSQL.
|
java.lang.String |
getGeneratedSQLasXML()
Getter for property generatedSQLasXML.
|
MetaData<T> |
getMetaData() |
java.lang.String |
getModifiedCatalog()
Getter for property modifiedCatalog.
|
int |
getModifiedCount()
Getter for property modifiedCount.
|
OptimisticLock |
getOptimisticLock()
Getter for property optimisticLock.
|
java.util.Map<java.lang.Enum<?>,java.lang.Object> |
getOptions() |
java.lang.Throwable |
getPersistenceError()
Getter for property persistenceError.
|
java.util.Set<java.lang.String> |
getPrimaryKey(java.lang.String catalog,
java.lang.String schema,
java.lang.String table) |
int |
getRemovedCount()
Getter for property removedCount.
|
java.lang.String |
getSchema()
Getter for property schema.
|
java.lang.String |
getTable()
Getter for property table.
|
protected void |
init() |
boolean |
isBatchEnabled() |
boolean |
isExceptionOnEmptyObjectList() |
boolean |
isGenerateSQLOnly()
Getter for property generateSQLOnly.
|
boolean |
isNoFullColumnName()
Getter for property noFullColumnName.
|
boolean |
isOverrideCatalogName() |
boolean |
isReadOnly() |
boolean |
isThrowFailedInsertException() |
boolean |
isThrowMissingFieldException() |
boolean |
isThrowOptimisticLockDeleteException()
Getter for property throwOptimisticLockDeleteException.
|
boolean |
isThrowOptimisticLockUpdateException()
Getter for property throwOptimisticLockUpdateException.
|
boolean |
isUpdatableTablePKOnly() |
protected java.lang.Object |
readValue(DomainObject<T> domainObject,
java.lang.reflect.Method method) |
protected boolean |
removeObject(DomainObject<T> domainObject) |
protected boolean |
removeObjects() |
void |
reset() |
void |
setBatchEnabled(boolean batchEnabled) |
void |
setCatalog(java.lang.String catalog)
Setter for property catalog.
|
void |
setConverter(Converter converter) |
protected void |
setCreatedCount(int createdCount)
Setter for property createdCount.
|
void |
setDataModificationSequence(DataWriter.DataModificationSequence[] dataModificationSequence)
Setter for property dataModificationSequence.
|
void |
setDBServices(DBServices dbServices)
Setter for property dbServices.
|
void |
setExceptionOnEmptyObjectList(boolean exceptionOnEmptyObjectList) |
void |
setGenerateSQLOnly(boolean generateSQLOnly)
Setter for property generateSQLOnly.
|
void |
setMetaData(MetaData<T> metaData) |
void |
setModifiedCatalog(java.lang.String modifiedCatalog)
Setter for property modifiedCatalog.
|
protected void |
setModifiedCount(int modifiedCount)
Setter for property modifiedCount.
|
void |
setNoFullColumnName(boolean noFullColumnName)
Setter for property noFullColumnName.
|
void |
setOptimisticLock(OptimisticLock optimisticLock)
Setter for property optimisticLock.
|
void |
setOptions(java.util.Map<java.lang.Enum<?>,java.lang.Object> options) |
void |
setOverrideCatalogName(boolean overrideCatalogName) |
void |
setPersistenceError(java.lang.Throwable persistenceError)
Setter for property persistenceError.
|
void |
setPrimaryKey(java.lang.String catalog,
java.lang.String schema,
java.lang.String table,
java.util.Set<java.lang.String> pk) |
void |
setReadOnly(boolean readOnly) |
protected void |
setRemovedCount(int removedCount)
Setter for property removedCount.
|
void |
setSchema(java.lang.String schema)
Setter for property schema.
|
void |
setTable(java.lang.String table)
Setter for property table.
|
void |
setThrowFailedInsertException(boolean throwFailedInsertException) |
void |
setThrowMissingFieldException(boolean throwMissingFieldException) |
void |
setThrowOptimisticLockDeleteException(boolean throwOptimisticLockDeleteException)
Setter for property throwOptimisticLockDeleteException.
|
void |
setThrowOptimisticLockUpdateException(boolean throwOptimisticLockUpdateException)
Setter for property throwOptimisticLockUpdateException.
|
void |
setUpdatableTablePKOnly(boolean updatableTablePKOnly) |
protected boolean |
storeObject(DomainObject domainObject) |
protected boolean |
storeObjects() |
boolean |
writeData(AbstractDomainObjectFactory objectFactory) |
protected int removedCount
protected int createdCount
protected int modifiedCount
protected java.util.List<DomainObject<T>> removedObjects
protected java.util.List<DomainObject<T>> createdObjects
protected java.util.List<DomainObject<T>> modifiedObjects
protected java.util.List<StatementHolder> generatedSQL
protected AbstractDomainObjectFactory<T> objectFactory
protected java.lang.String fullTableName
protected java.lang.String modifiedCatalog
protected java.lang.String modifiedSchema
protected java.lang.String modifiedTable
protected static final java.lang.Object[] EMPTY_ARG
protected java.lang.Throwable persistenceError
protected boolean exceptionOnEmptyObjectList
protected boolean lowerCaseKeywords
protected static final java.lang.String DOT
protected DBServices dbServices
protected boolean batchEnabled
protected java.util.Map<java.lang.Enum<?>,java.lang.Object> options
protected Converter converter
protected DataWriter.DataModificationSequence[] dataModificationSequence
protected boolean readOnly
protected OptimisticLock optimisticLock
protected boolean throwOptimisticLockDeleteException
protected boolean throwOptimisticLockUpdateException
protected boolean throwFailedInsertException
protected java.lang.String catalog
protected boolean overrideCatalogName
protected java.lang.String schema
protected java.lang.String table
protected boolean generateSQLOnly
protected boolean noFullColumnName
protected boolean throwMissingFieldException
protected DBMetaData<T> metaData
protected java.util.Map<java.lang.String,java.util.Collection<java.util.Collection>> removedBatch
protected java.util.Map<java.lang.String,java.util.Collection<java.util.Collection>> createdBatch
protected java.util.Map<java.lang.String,java.util.Collection<java.util.Collection>> modifiedBatch
protected boolean updatableTablePKOnly
public DBDataWriter()
public DBDataWriter(DBServices dbServices)
protected void init() throws java.sql.SQLException
java.sql.SQLException
public boolean writeData(AbstractDomainObjectFactory objectFactory)
writeData
in interface DataWriter<T>
protected void executeBatch()
protected boolean removeObjects()
protected boolean storeObjects()
protected boolean createObjects()
protected boolean removeObject(DomainObject<T> domainObject)
protected boolean storeObject(DomainObject domainObject)
protected boolean createObject(DomainObject domainObject)
public int getRemovedCount()
getRemovedCount
in interface DataWriter<T>
protected void setRemovedCount(int removedCount)
removedCount
- New value of property removedCount.public int getCreatedCount()
getCreatedCount
in interface DataWriter<T>
protected void setCreatedCount(int createdCount)
createdCount
- New value of property createdCount.public int getModifiedCount()
getModifiedCount
in interface DataWriter<T>
protected void setModifiedCount(int modifiedCount)
modifiedCount
- New value of property modifiedCount.public void reset()
reset
in interface DataWriter<T>
public java.util.List<StatementHolder> getGeneratedSQL()
public java.lang.Throwable getPersistenceError()
getPersistenceError
in interface DataWriter<T>
public void setPersistenceError(java.lang.Throwable persistenceError)
persistenceError
- New value of property persistenceError.public Converter getConverter()
getConverter
in interface DataWriter<T>
public void setConverter(Converter converter)
setConverter
in interface DataWriter<T>
public java.lang.String getModifiedCatalog()
public void setModifiedCatalog(java.lang.String modifiedCatalog)
modifiedCatalog
- New value of property modifiedCatalog.public boolean isReadOnly()
public void setReadOnly(boolean readOnly)
public java.lang.String getGeneratedSQLasXML()
public boolean isExceptionOnEmptyObjectList()
isExceptionOnEmptyObjectList
in interface DataWriter<T>
public void setExceptionOnEmptyObjectList(boolean exceptionOnEmptyObjectList)
setExceptionOnEmptyObjectList
in interface DataWriter<T>
protected java.lang.Object readValue(DomainObject<T> domainObject, java.lang.reflect.Method method) throws DataAccessException
DataAccessException
public java.util.Set<java.lang.String> getPrimaryKey(java.lang.String catalog, java.lang.String schema, java.lang.String table) throws java.sql.SQLException
java.sql.SQLException
public void setPrimaryKey(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.util.Set<java.lang.String> pk)
public DBServices getDBServices()
public void setDBServices(DBServices dbServices)
dbServices
- New value of property dbServices.public DataWriter.DataModificationSequence getDataModificationSequence(int index)
index
- Index of the property.index
.public DataWriter.DataModificationSequence[] getDataModificationSequence()
public void setDataModificationSequence(DataWriter.DataModificationSequence[] dataModificationSequence)
dataModificationSequence
- New value of property dataModificationSequence.public OptimisticLock getOptimisticLock()
public void setOptimisticLock(OptimisticLock optimisticLock)
optimisticLock
- New value of property optimisticLock.public java.lang.String getSchema()
public void setSchema(java.lang.String schema)
schema
- New value of property schema.public java.lang.String getTable()
public void setTable(java.lang.String table)
table
- New value of property table.public boolean isThrowOptimisticLockDeleteException()
public void setThrowOptimisticLockDeleteException(boolean throwOptimisticLockDeleteException)
throwOptimisticLockDeleteException
- New value of property throwOptimisticLockDeleteException.public boolean isThrowOptimisticLockUpdateException()
public void setThrowOptimisticLockUpdateException(boolean throwOptimisticLockUpdateException)
throwOptimisticLockUpdateException
- New value of property throwOptimisticLockUpdateException.public void setThrowFailedInsertException(boolean throwFailedInsertException)
public boolean isThrowFailedInsertException()
public boolean isGenerateSQLOnly()
public void setGenerateSQLOnly(boolean generateSQLOnly)
generateSQLOnly
- New value of property generateSQLOnly.public java.lang.String getCatalog()
public void setCatalog(java.lang.String catalog)
catalog
- New value of property catalog.public boolean isNoFullColumnName()
public void setNoFullColumnName(boolean noFullColumnName)
noFullColumnName
- New value of property noFullColumnName.public boolean isOverrideCatalogName()
public void setOverrideCatalogName(boolean overrideCatalogName)
public boolean isThrowMissingFieldException()
public void setThrowMissingFieldException(boolean throwMissingFieldException)
public boolean isBatchEnabled()
public void setBatchEnabled(boolean batchEnabled)
public MetaData<T> getMetaData()
getMetaData
in interface DataWriter<T>
public void setMetaData(MetaData<T> metaData)
setMetaData
in interface DataWriter<T>
public java.util.Map<java.lang.Enum<?>,java.lang.Object> getOptions()
getOptions
in interface DataWriter<T>
public boolean isUpdatableTablePKOnly()
public void setUpdatableTablePKOnly(boolean updatableTablePKOnly)
public void setOptions(java.util.Map<java.lang.Enum<?>,java.lang.Object> options)
setOptions
in interface DataWriter<T>