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