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 to_one one_to_many many_to_many LAZY EAGER NONE ALL ON_INSERT ON_UPDATE ON_DELETE by 'all' tag

ATTRIBUTES

class

class name

entity_name

entity name.

columns

A map between database column and object attribute

lobs

Assocation to LOB objects definition.

relationships

Assocation to objects relationship definition.

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
});
entity_manager
mop_attribute_adapter

Name of the class that is an adapter to meta object protocols. That class have to implements Persistence::Attribute interface.

object_creation_method

Returns object creation method. Allowed values: bless or new

_attributes_to_columns

Cache for the attributes_to_columns method result

_columns_to_attributes

Cache for the columns_to_attributes method result

_columns_to_storage_attributes

Cache for the columns_to_storage_attributes method result

METHODS

entity

Creates a meta entity class.

mapping_meta

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

column

Adds mapping between column name and related attribute. Takes column name and attribute object as parameter.

column ('column1' => has '$.attr1');
lob

Adds mapping between lob column name and related attribute.

lob 'lob_column' => (
    attribute    => has('$.photo'),
    fetch_method => LAZY,
);
covert_to_attributes

Converts passed in data structure to attributes

covert_to_lob_attributes

Converts passed in data structure to lob attributes

_create_meta_attribute

Creates a meta attribute

add_lob_column

Adds lob column. Takes lob column name, attribute name;

eager_fetch_lobs
lazy_fetch_lobs
attribute
deserialise

Deserialises resultset to object.

deserialise_eager_relation_attributes
deserialise_eager_lob_attributes
deserialise_lazy_relation_attributes
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
attributes_to_columns
columns_to_attributes
columns_to_storage_attributes
attribute_to_column

Returns column name. Takes attribute name.

storage_attribute_values

Transforms column values to the hash that can be blessed as an object. Takes hash ref of column_values

attribute_values

Transforms column values to the object attribute value hash. Takes hash ref of column_values

column_values

Transforms objects attributes to column values Takes object, optionally required columns. (by default all colunms)

attribute_values_to_column_values

Returns column values. Takes attribute values hash.

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