Class GenericFactory

java.lang.Object
org.castor.cpa.persistence.sql.driver.BaseFactory
org.castor.cpa.persistence.sql.driver.GenericFactory
All Implemented Interfaces:
PersistenceFactory
Direct Known Subclasses:
DB2Factory, DerbyFactory, HsqlFactory, InformixFactory, InstantDBFactory, InterbaseFactory, MySQLFactory, OracleFactory, PointbaseFactory, PostgreSQLFactory, ProgressFactory, SapDbFactory, SQLServerFactory, SybaseFactory

public class GenericFactory extends BaseFactory
PersistenceFactory for generic JDBC driver.
Version:
$Revision: 8377 $ $Date: 2004-01-19 13:01:46 -0700 (Mon, 19 Jan 2004) $
Author:
Assaf Arkin, Bruce Snyder
  • Constructor Details

    • GenericFactory

      public GenericFactory()
  • Method Details

    • getFactoryName

      public 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.
      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.
      Returns:
      New empty query expression
    • quoteName

      public String quoteName(String name)
      Description copied from interface: PersistenceFactory
      Returns the quoted identifier suitable for preventing conflicts between database identifiers and reserved keywords.
      Parameters:
      name - The identifier (table, column, etc)
      Returns:
      The quoted identifier
    • doubleQuoteName

      protected final String doubleQuoteName(String name)
      Updated to handle input such as user.tablename.column.
    • isKeyGeneratorIdentitySupported

      public boolean isKeyGeneratorIdentitySupported()
      Does persistence factory support generation of unique keys with identity key generator?
      Returns:
      true if persistence factory is able to generate unique keys with identity key generator, false otherwise.
    • isKeyGeneratorIdentityTypeSupported

      public boolean isKeyGeneratorIdentityTypeSupported(int type)
      Does identity key generator support generation of unique keys for the given SQL type?
      Parameters:
      type - SQL type to check for support by identity key generator.
      Returns:
      true if persistence factory is able to generate unique keys of given SQL type with identity key generator, false otherwise.
    • getIdentitySelectString

      public String getIdentitySelectString(String tableName, String columnName)
      Returns the database specific query string for retrieving last identity value.
      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)
      Does persistence factory support generation of new key at the time of new object creation with sequence key generator?
      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?
      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 String getSequenceNextValString(String seqName)
      Returns the database engine specific string to fetch sequence next value.
      Parameters:
      seqName - Name of the sequence.
      Returns:
      String to fetch sequence next value.
    • getSequenceAfterSelectString

      public String getSequenceAfterSelectString(String seqName, String tableName)
      Returns the database specific SELECT query string for fetching identity after the INSERT statement executed.
      Parameters:
      seqName - Name of sequence.
      tableName - Name of the table from which identity will be fetched.
      Returns:
      SELECT sql string
    • getSequenceBeforeSelectString

      public String getSequenceBeforeSelectString(String seqName, String tableName, int increment)
      Returns the database specific SELECT query string for fetching identity before the next INSERT statement gets executed.
      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