Class InstantDBFactory
- java.lang.Object
-
- org.castor.cpa.persistence.sql.driver.BaseFactory
-
- org.castor.cpa.persistence.sql.driver.GenericFactory
-
- org.castor.cpa.persistence.sql.driver.InstantDBFactory
-
- All Implemented Interfaces:
PersistenceFactory
public final class InstantDBFactory extends GenericFactory
Persistence factory for InstantDB database (http://instantdb.enhydra.org/ ).Example
database.xml
file for JDO
<database name="test" engine="instantdb" > <driver class-name="org.enhydra.instantdb.jdbc.idbDriver" url="jdbc:idb:C:\\castor-0.8.8\\db\\test\\test.prp"> <param name="user" value="" /> <param name="password" value="" /> </driver> <mapping href="mapping.xml" /> </database>
- Version:
- 1.0
- Author:
- I. Burak Ozyurt
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
FACTORY_NAME
-
Constructor Summary
Constructors Constructor Description InstantDBFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Class<?>
adjustSqlType(java.lang.Class<?> sqlType)
For NUMERIC type ResultSet.getObject() returns Double instead of BigDecimal for InstantDB.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.-
Methods inherited from class org.castor.cpa.persistence.sql.driver.GenericFactory
doubleQuoteName, getIdentitySelectString, getSequenceAfterSelectString, getSequenceBeforeSelectString, getSequenceNextValString, isKeyGeneratorIdentitySupported, isKeyGeneratorIdentityTypeSupported, isKeyGeneratorSequenceSupported, isKeyGeneratorSequenceTypeSupported, quoteName
-
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
-
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 NUMERIC type ResultSet.getObject() returns Double instead of BigDecimal for InstantDB.- 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.
-
-