Class NoKeyGenerator

    • Constructor Detail

      • NoKeyGenerator

        public NoKeyGenerator​(PersistenceFactory factory)
        Constructor.
        Parameters:
        factory - Persistence factory for the database engine the entity is persisted in. Used to format the SQL statement.
    • Method Detail

      • isInSameConnection

        public boolean isInSameConnection()
        Is key generated in the same connection as INSERT? For DURING_INSERT style this method is never called.
        Returns:
        {code}True{code} If this instance is in same JDBC Connection.
      • generateKey

        public java.lang.Object generateKey​(java.sql.Connection conn,
                                            java.lang.String tableName,
                                            java.lang.String primKeyName)
                                     throws PersistenceException
        Generate a new key for the specified table. This method is called when a new object is about to be created. In some environments the name of the owner of the object is known, e.g. the principal in a J2EE server. This method is never called for DURING_INSERT key generators.
        Parameters:
        conn - An open connection within the given transaction
        tableName - The table name
        primKeyName - The primary key name
        Returns:
        A new key
        Throws:
        PersistenceException - An error occured talking to persistent storage
      • buildStatement

        public KeyGenerator buildStatement​(SQLEngine engine)
        Builds the SQL insert statement.
        Parameters:
        engine - SQL engine for all persistence operations at entities of the type this class is responsible for. Holds all required information of the entity type.
        Returns:
        KeyGenerator
      • executeStatement

        public java.lang.Object executeStatement​(Database database,
                                                 CastorConnection conn,
                                                 Identity identity,
                                                 ProposedEntity entity)
                                          throws PersistenceException
        Executes the SQL statement after preparing the PreparedStatement.
        Parameters:
        database - A database instance.
        conn - CastorConnection holding connection and PersistenceFactory to be used to create statement.
        identity - Identity of the object to insert.
        entity - Entity instance from which field values to be fetached to bind with sql insert statement.
        Returns:
        Identity
        Throws:
        PersistenceException - If failed to insert record into database. This could happen if a database access error occurs, If identity size mismatches, unable to retrieve Identity, If provided Identity is null, If Extended engine is null.
      • bindIdentity

        public void bindIdentity​(Identity internalIdentity,
                                 CastorStatement stmt)
                          throws java.sql.SQLException,
                                 PersistenceException
        Binds the identity values.
        Parameters:
        internalIdentity - Identity values.
        stmt - CastorStatement containing Connection and PersistenceFactory.
        Throws:
        java.sql.SQLException - If a database access error occurs.
        PersistenceException - If identity size mismatches.