Class OracleFactory
- java.lang.Object
-
- org.castor.cpa.persistence.sql.driver.BaseFactory
-
- org.castor.cpa.persistence.sql.driver.GenericFactory
-
- org.castor.cpa.persistence.sql.driver.OracleFactory
-
- All Implemented Interfaces:
PersistenceFactory
public final class OracleFactory extends GenericFactory
PersistenceFactory
for Oracle 7/8 driver.- Version:
- $Revision: 8377 $ $Date: 2006-04-25 15:08:23 -0600 (Tue, 25 Apr 2006) $
- Author:
- Assaf Arkin
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
FACTORY_NAME
-
Constructor Summary
Constructors Constructor Description OracleFactory()
-
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).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).java.lang.String
getFactoryName()
Returns the name of this factory.QueryExpression
getQueryExpression()
Returns a new empty query expression suitable for the underlying SQL engine.java.lang.String
getSequenceBeforeSelectString(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.java.lang.String
getSequenceNextValString(java.lang.String seqName)
Returns the database engine specific string to fetch sequence next value.boolean
isKeyGeneratorSequenceSupported(boolean returning, boolean trigger)
Does persistence factory support generation of new key at the time of new object creation with sequence key generator?boolean
isKeyGeneratorSequenceTypeSupported(int type)
Does Sequence key generator support generation of key for the given SQL type?java.lang.String
quoteName(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, getIdentitySelectString, getSequenceAfterSelectString, isKeyGeneratorIdentitySupported, isKeyGeneratorIdentityTypeSupported
-
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:PersistenceFactory
Returns the name of this factory. A descriptive name that indicates the type of supported database server or SQL syntax.- Specified by:
getFactoryName
in interfacePersistenceFactory
- Overrides:
getFactoryName
in classGenericFactory
- Returns:
- The name of this factory
-
getQueryExpression
public QueryExpression getQueryExpression()
Description copied from interface:PersistenceFactory
Returns a new empty query expression suitable for the underlying SQL engine. The implementation will construct SQL query statements in the preferred syntax.- Specified by:
getQueryExpression
in interfacePersistenceFactory
- Overrides:
getQueryExpression
in classGenericFactory
- Returns:
- New empty query expression
-
quoteName
public java.lang.String quoteName(java.lang.String name)
Description copied from interface:PersistenceFactory
Returns the quoted identifier suitable for preventing conflicts between database identifiers and reserved keywords.- Specified by:
quoteName
in interfacePersistenceFactory
- Overrides:
quoteName
in 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:
getCallQuery
in interfacePersistenceFactory
- Overrides:
getCallQuery
in 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:
adjustSqlType
in interfacePersistenceFactory
- Overrides:
adjustSqlType
in 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.
-
isKeyGeneratorSequenceSupported
public boolean isKeyGeneratorSequenceSupported(boolean returning, boolean trigger)
Description copied from class:GenericFactory
Does persistence factory support generation of new key at the time of new object creation with sequence key generator?- Specified by:
isKeyGeneratorSequenceSupported
in interfacePersistenceFactory
- Overrides:
isKeyGeneratorSequenceSupported
in classGenericFactory
- Parameters:
returning
- Return generated key value with insert statement?trigger
- Use a database trigger to generate key?- Returns:
true
if persistence factory is able to generate key with sequence key generator,false
otherwise.
-
isKeyGeneratorSequenceTypeSupported
public boolean isKeyGeneratorSequenceTypeSupported(int type)
Does Sequence key generator support generation of key for the given SQL type?- Specified by:
isKeyGeneratorSequenceTypeSupported
in interfacePersistenceFactory
- Overrides:
isKeyGeneratorSequenceTypeSupported
in classGenericFactory
- Parameters:
type
- SQL type to check for support by sequence key generator.- Returns:
true
if persistence factory is able to generate key of given SQL type with sequence key generator,false
otherwise.
-
getSequenceNextValString
public java.lang.String getSequenceNextValString(java.lang.String seqName)
Description copied from class:GenericFactory
Returns the database engine specific string to fetch sequence next value.- Specified by:
getSequenceNextValString
in interfacePersistenceFactory
- Overrides:
getSequenceNextValString
in classGenericFactory
- Parameters:
seqName
- Name of the sequence.- Returns:
- String to fetch sequence next value.
-
getSequenceBeforeSelectString
public java.lang.String getSequenceBeforeSelectString(java.lang.String seqName, java.lang.String tableName, int increment)
Description copied from class:GenericFactory
Returns the database specific SELECT query string for fetching identity before the next INSERT statement gets executed.- Specified by:
getSequenceBeforeSelectString
in interfacePersistenceFactory
- Overrides:
getSequenceBeforeSelectString
in 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
-
-