Adrian Witas > Persistence-Entity-0.07 > Persistence::ValueGenerator

Download:
Persistence-Entity-0.07.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01   Source  

NAME ^

Persistence::ValueGenerator - Unqiue value generator.

SYNOPSIS ^

   use Persistence::ValueGenerator::TableGenerator;

    my $generator = Persistence::ValueGenerator::TableGenerator->new(
        entity_manager           => $entity_manager_name,
        name                     => 'empno_generator',
        table                    => 'seq_generator',
        primary_key_column_name  => 'pk_column',
        primary_key_column_value => 'empno',
        value_column             => 'value_column',
        allocation_size          =>  5,
    );

    my $entity = Persistence::Entity->new(
        name                  => 'emp',
        unique_expression     => 'empno',
        primary_key           => ['empno'],
        columns               => [
            sql_column(name => 'ename'),
            sql_column(name => 'empno'),
            sql_column(name => 'deptno')
        ],
        value_generators => {empno => 'empno_generator'},
    );
    # or
    # $entity->add_value_generators(empno => 'empno_generator');

    $entity_manager->add_entities($entity);

DESCRIPTION ^

Abstract class for value generator's class.

EXPORT ^

None

ATTRIBUTES

name

Defines the name of the Persistence::ValueGenerator::TableGenerator instance and is the name referenced in the

allocation_size

Defined how much the counter will be incremented when entity queries the table for a new value, This feature is to cache blocks so that it doesn't have to go to the database every time it needs a new ID.

_cached_seq

Stores counter for current seq and allocation_size

entity_manager_name

Entity manager name

_entity_manager

Caches entity manager instance.

METHODS

initialise
generator

Returns generator instance, takes table generator name.

nextval

Returns next value for the instance generator

retrieve_next_value

Abstract method retrieve_next_value

has_cached_seq

Return true if objects holds cached_seq.

entity_manager

Returns entity manager.

SEE ALSO ^

Persistence::ValueGenerator::TableGenerator Persistence::ValueGenerator::SequenceGenerator

COPYRIGHT AND LICENSE ^

The Persistence::ValueGenerator module is free software. You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.

AUTHOR ^

Adrian Witas, adrian@webapp.strefa.pl

syntax highlighting: