NAME

Persistence::Relationship - LOBs mapping object.

CLASS HIERARCHY

Persistence::Fetchable
   |
   +----Persistence::LOB

SYNOPSIS

use Persistence::ORM':all';
use Persistence::Entity ':all';

my $photo_entity = Persistence::Entity->new(
    name    => 'photo',
    alias   => 'ph',
    primary_key => ['id'],
    columns => [
        sql_column(name => 'id'),
        sql_column(name => 'name', unique => 1),
    ],
    lobs => [
        sql_lob(name => 'blob_content', size_column => 'doc_size'),
    ]
);
$entity_manager->add_entities($photo_entity);

package Photo;
use Abstract::Meta::Class ':all';
use Persistence::ORM ':all';
entity 'photo';

column 'id'   => has('$.id');
column 'name' => has('$.name');
lob    'blob_content' => (attribute => has('$.image'), fetch_method => LAZY);


package EagerPhoto;
use Abstract::Meta::Class ':all';
use Persistence::ORM ':all';
entity 'photo';

column 'id'   => has('$.id');
column 'name' => has('$.name');
lob    'blob_content' => (attribute => has('$.image'), fetch_method => EAGER);

my ($photo) = $entity_manager->find(photo => 'Photo', id => 10);
$photo->name('Moon');
$photo->set_image($moon_image);
$entity_manager->update($photo);

DESCRIPTION

Represents a base class for object relationship.

EXPORT

LAZY EAGER NONE ALL ON_INSERT ON_UPDATE ON_DELETE method by ':all' tag.

ATTRIBUTES

attribute
orm
initialise
install_fetch_interceptor
deserialise_attribute

Deserializes attribute value.

SEE ALSO

Persistence::Relationship Persistence::Entity Persistence::Entity::Manager Persistence::ORM

COPYRIGHT AND LICENSE

The Persistence::LOB 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</gt>