Class SapDbFactory

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String FACTORY_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).
      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.
      java.lang.String getIdentitySelectString​(java.lang.String tableName, java.lang.String columnName)
      Returns the database specific query string for retrieving last identity value.
      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.
      boolean isKeyGeneratorIdentitySupported()
      Does persistence factory support generation of unique keys with identity key generator?
      boolean isKeyGeneratorIdentityTypeSupported​(int type)
      Does identity key generator support generation of unique keys for the given SQL type?
      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 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SapDbFactory

        public SapDbFactory()
    • Method Detail

      • 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 interface PersistenceFactory
        Overrides:
        quoteName in class GenericFactory
        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 interface PersistenceFactory
        Overrides:
        getCallQuery in class BaseFactory
        Parameters:
        call - Stored procedure call (without "{call")
        paramTypes - The types of the query parameters
        javaClass - The Java class of the query results
        fields - The field names
        sqlTypes - 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 interface PersistenceFactory
        Overrides:
        adjustSqlType in class BaseFactory
        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.
      • isKeyGeneratorIdentityTypeSupported

        public boolean isKeyGeneratorIdentityTypeSupported​(int type)
        Description copied from class: GenericFactory
        Does identity key generator support generation of unique keys for the given SQL type?
        Specified by:
        isKeyGeneratorIdentityTypeSupported in interface PersistenceFactory
        Overrides:
        isKeyGeneratorIdentityTypeSupported in class GenericFactory
        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 java.lang.String getIdentitySelectString​(java.lang.String tableName,
                                                        java.lang.String columnName)
        Description copied from class: GenericFactory
        Returns the database specific query string for retrieving last identity value.
        Specified by:
        getIdentitySelectString in interface PersistenceFactory
        Overrides:
        getIdentitySelectString in class GenericFactory
        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: GenericFactory
        Does persistence factory support generation of new key at the time of new object creation with sequence key generator?
        Specified by:
        isKeyGeneratorSequenceSupported in interface PersistenceFactory
        Overrides:
        isKeyGeneratorSequenceSupported in class GenericFactory
        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 interface PersistenceFactory
        Overrides:
        isKeyGeneratorSequenceTypeSupported in class GenericFactory
        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.
      • 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 interface PersistenceFactory
        Overrides:
        getSequenceBeforeSelectString in class GenericFactory
        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