Class SapDbFactory
- java.lang.Object
-
- org.castor.cpa.persistence.sql.driver.BaseFactory
-
- org.castor.cpa.persistence.sql.driver.GenericFactory
-
- org.castor.cpa.persistence.sql.driver.SapDbFactory
-
- All Implemented Interfaces:
PersistenceFactory
public final class SapDbFactory extends GenericFactory
PersistenceFactory for SAP DB.- Version:
- $Revision: 8377 $ $Date: 2006-04-13 06:47:36 -0600 (Thu, 13 Apr 2006) $
- Author:
- Oleg Nitz, Bruce Snyder
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringFACTORY_NAME
-
Constructor Summary
Constructors Constructor Description SapDbFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Class<?>adjustSqlType(java.lang.Class<?> sqlType)For INTEGER type ResultSet.getObject() returns BigDecimal: dependent objects with integer identity cause type conversion error (need to fix SimpleQueryExecutor).PersistenceQuerygetCallQuery(java.lang.String call, java.lang.Class<?>[] paramTypes, java.lang.Class<?> javaClass, java.lang.String[] fields, int[] sqlTypes)Needed to process OQL queries of "CALL" type (using stored procedure call).java.lang.StringgetFactoryName()Returns the name of this factory.java.lang.StringgetIdentitySelectString(java.lang.String tableName, java.lang.String columnName)Returns the database specific query string for retrieving last identity value.QueryExpressiongetQueryExpression()Returns a new empty query expression suitable for the underlying SQL engine.java.lang.StringgetSequenceBeforeSelectString(java.lang.String seqName, java.lang.String tableName, int increment)Returns the database specific SELECT query string for fetching identity before the next INSERT statement gets executed.booleanisKeyGeneratorIdentitySupported()Does persistence factory support generation of unique keys with identity key generator?booleanisKeyGeneratorIdentityTypeSupported(int type)Does identity key generator support generation of unique keys for the given SQL type?booleanisKeyGeneratorSequenceSupported(boolean returning, boolean trigger)Does persistence factory support generation of new key at the time of new object creation with sequence key generator?booleanisKeyGeneratorSequenceTypeSupported(int type)Does Sequence key generator support generation of key for the given SQL type?java.lang.StringquoteName(java.lang.String name)Returns the quoted identifier suitable for preventing conflicts between database identifiers and reserved keywords.-
Methods inherited from class org.castor.cpa.persistence.sql.driver.GenericFactory
doubleQuoteName, getSequenceAfterSelectString, getSequenceNextValString
-
Methods inherited from class org.castor.cpa.persistence.sql.driver.BaseFactory
getKeyGenerator, getPersistence
-
-
-
-
Field Detail
-
FACTORY_NAME
public static final java.lang.String FACTORY_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
getFactoryName
public java.lang.String getFactoryName()
Description copied from interface:PersistenceFactoryReturns the name of this factory. A descriptive name that indicates the type of supported database server or SQL syntax.- Specified by:
getFactoryNamein interfacePersistenceFactory- Overrides:
getFactoryNamein classGenericFactory- Returns:
- The name of this factory
-
getQueryExpression
public QueryExpression getQueryExpression()
Description copied from interface:PersistenceFactoryReturns a new empty query expression suitable for the underlying SQL engine. The implementation will construct SQL query statements in the preferred syntax.- Specified by:
getQueryExpressionin interfacePersistenceFactory- Overrides:
getQueryExpressionin classGenericFactory- Returns:
- New empty query expression
-
quoteName
public java.lang.String quoteName(java.lang.String name)
Description copied from interface:PersistenceFactoryReturns the quoted identifier suitable for preventing conflicts between database identifiers and reserved keywords.- Specified by:
quoteNamein interfacePersistenceFactory- Overrides:
quoteNamein classGenericFactory- Parameters:
name- The identifier (table, column, etc)- Returns:
- The quoted identifier
-
getCallQuery
public PersistenceQuery getCallQuery(java.lang.String call, java.lang.Class<?>[] paramTypes, java.lang.Class<?> javaClass, java.lang.String[] fields, int[] sqlTypes)
Needed to process OQL queries of "CALL" type (using stored procedure call). This feature is specific for JDO.- Specified by:
getCallQueryin interfacePersistenceFactory- Overrides:
getCallQueryin classBaseFactory- Parameters:
call- Stored procedure call (without "{call")paramTypes- The types of the query parametersjavaClass- The Java class of the query resultsfields- The field namessqlTypes- The field SQL types- Returns:
- null if this feature is not supported.
-
adjustSqlType
public java.lang.Class<?> adjustSqlType(java.lang.Class<?> sqlType)
For INTEGER type ResultSet.getObject() returns BigDecimal: dependent objects with integer identity cause type conversion error (need to fix SimpleQueryExecutor).- Specified by:
adjustSqlTypein interfacePersistenceFactory- Overrides:
adjustSqlTypein classBaseFactory- Parameters:
sqlType- The correspondent Java class for the SQL type in mapping.xml- Returns:
- The correspondent Java class for the SQL type that should be used instead.
-
isKeyGeneratorIdentitySupported
public boolean isKeyGeneratorIdentitySupported()
Description copied from class:GenericFactoryDoes persistence factory support generation of unique keys with identity key generator?- Specified by:
isKeyGeneratorIdentitySupportedin interfacePersistenceFactory- Overrides:
isKeyGeneratorIdentitySupportedin classGenericFactory- Returns:
trueif persistence factory is able to generate unique keys with identity key generator,falseotherwise.
-
isKeyGeneratorIdentityTypeSupported
public boolean isKeyGeneratorIdentityTypeSupported(int type)
Description copied from class:GenericFactoryDoes identity key generator support generation of unique keys for the given SQL type?- Specified by:
isKeyGeneratorIdentityTypeSupportedin interfacePersistenceFactory- Overrides:
isKeyGeneratorIdentityTypeSupportedin classGenericFactory- Parameters:
type- SQL type to check for support by identity key generator.- Returns:
trueif persistence factory is able to generate unique keys of given SQL type with identity key generator,falseotherwise.
-
getIdentitySelectString
public java.lang.String getIdentitySelectString(java.lang.String tableName, java.lang.String columnName)Description copied from class:GenericFactoryReturns the database specific query string for retrieving last identity value.- Specified by:
getIdentitySelectStringin interfacePersistenceFactory- Overrides:
getIdentitySelectStringin classGenericFactory- Parameters:
tableName- Name of the table from which identity needs to be fetched.columnName- Name of the column from which identity needs to be fetched.- Returns:
- SQL Query string for fetching the identity value.
-
isKeyGeneratorSequenceSupported
public boolean isKeyGeneratorSequenceSupported(boolean returning, boolean trigger)Description copied from class:GenericFactoryDoes persistence factory support generation of new key at the time of new object creation with sequence key generator?- Specified by:
isKeyGeneratorSequenceSupportedin interfacePersistenceFactory- Overrides:
isKeyGeneratorSequenceSupportedin classGenericFactory- Parameters:
returning- Return generated key value with insert statement?trigger- Use a database trigger to generate key?- Returns:
trueif persistence factory is able to generate key with sequence key generator,falseotherwise.
-
isKeyGeneratorSequenceTypeSupported
public boolean isKeyGeneratorSequenceTypeSupported(int type)
Does Sequence key generator support generation of key for the given SQL type?- Specified by:
isKeyGeneratorSequenceTypeSupportedin interfacePersistenceFactory- Overrides:
isKeyGeneratorSequenceTypeSupportedin classGenericFactory- Parameters:
type- SQL type to check for support by sequence key generator.- Returns:
trueif persistence factory is able to generate key of given SQL type with sequence key generator,falseotherwise.
-
getSequenceBeforeSelectString
public java.lang.String getSequenceBeforeSelectString(java.lang.String seqName, java.lang.String tableName, int increment)Description copied from class:GenericFactoryReturns the database specific SELECT query string for fetching identity before the next INSERT statement gets executed.- Specified by:
getSequenceBeforeSelectStringin interfacePersistenceFactory- Overrides:
getSequenceBeforeSelectStringin classGenericFactory- Parameters:
seqName- Name of sequence.tableName- Name of the table from which identity will be fetched.increment- Increment value used in Interbase database engine.- Returns:
- SELECT sql string
-
-