Class PostgreSQLFactory

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Class<?> adjustSqlType​(java.lang.Class<?> sqlType)
      Some databases has some problems with some SQL types.
      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 getSequenceAfterSelectString​(java.lang.String seqName, java.lang.String tableName)
      Returns the database specific SELECT query string for fetching identity after the INSERT statement executed.
      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

      • PostgreSQLFactory

        public PostgreSQLFactory()
    • 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)
        Description copied from class: BaseFactory
        Some databases has some problems with some SQL types. Usually it is enough to merely replace one SQL type by another.
        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
      • getSequenceAfterSelectString

        public java.lang.String getSequenceAfterSelectString​(java.lang.String seqName,
                                                             java.lang.String tableName)
        Description copied from class: GenericFactory
        Returns the database specific SELECT query string for fetching identity after the INSERT statement executed.
        Specified by:
        getSequenceAfterSelectString in interface PersistenceFactory
        Overrides:
        getSequenceAfterSelectString in class GenericFactory
        Parameters:
        seqName - Name of sequence.
        tableName - Name of the table from which identity will be fetched.
        Returns:
        SELECT sql string