NAME

Persistence::ORM - Object-relational mapping.

SYNOPSIS

package Employee;

use Abstract::Meta::Class ':all';
use Persistence::ORM ':all';

entity 'emp';
column empno => has('$.no') ;
column ename => has('$.name');

DESCRIPTION

Object-relational mapping module.

EXPORT

entity, column, trigger by 'all' tag

ATTRIBUTES

class

class name

entity_name

entity name.

columns

Columns map between database column and object attribute

trigger

Defines tigger that will execute on one of the following event before_insert after_insert before_update after_update before_delete after_delete, on_fetch Takes event name as first parameter, and callback as secound parameter.

$entity_manager->trigger(before_insert => sub {
    my ($self) = @_;
    #do stuff
});

METHODS

entity

Creates a meta entity class.

column

Adds mapping between column name and related attribute. column (column => has '$.attr1');

initialise
mapping_meta

Returns meta enity class. Takes optionally package name as parameter.

add_column

Adds columns. Takes column name, attribute name;

attribute
deserialise

Deserialises resultset to object.

deserialise_eager_relation_attributes
hash_to_attributes_values
map_attributes_storage_to_column_values

Maps keys on passed in hash to coresponding columns.

column_values

Returns map of passed in columns

serialise

Serialised retrives date to object.

attribute_to_column
map_attributes_to_column_values

Maps keys from passed in hash to coresponding columns.

attribute_to_column_map
update_object
join_columns_values

Returns join columns values for passed in relation

unique_values

Return unique columns values

primary_key_values

Return primary key values

trigger
validate_trigger

Validates triggers types

run_event

SEE ALSO

Abstract::Meta::Class Persistence::Entity::Manager SQL::Entity

COPYRIGHT AND LICENSE

The SQL::Entity::ORM 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