Persistence::Relationship::OneToMany - One to many relationship.
Persistence::Relationship | +----Persistence::Relationship::OneToMany
#.... entities definition my $membership_entity = Persistence::Entity->new( name => 'wsus_user_service', alias => 'us', primary_key => ['user_id', 'service_id'], columns => [ sql_column(name => 'user_id'), sql_column(name => 'service_id'), sql_column(name => 'agreement_flag') ], ); my $user_entity = Persistence::Entity->new( name => 'wsus_user', alias => 'ur', primary_key => ['id'], columns => [ sql_column(name => 'id'), sql_column(name => 'username', unique => 1), sql_column(name => 'password'), sql_column(name => 'email'), ], to_many_relationships => [sql_relationship(target_entity => $membership_entity, join_columns => ['user_id'], order_by => 'service_id, user_id')] ); $entity_manager->add_entities($membership_entity, $user_entity); # object mapping package User; use Abstract::Meta::Class ':all'; use Persistence::Entity ':all'; use Persistence::ORM ':all'; entity 'wsus_user'; column id => has('$.id'); column username => has('$.name'); column password => has('$.password'); column email => has('$.email'); one_to_many 'wsus_user_service' => ( attribute => has('@.membership' => (associated_class => 'Membership')), fetch_method => EAGER, cascade => ALL, );
Represents one to many relationship. Allows cascading operation (inert/update/delete). Supports eager, lazy fetch, cascading operation (inert/update/delete).
one_to_many method by ':all' tag.
Create a new instance of one to many relation. Takes associated entity's id as parameters and list of named parameters for Persistence::Relationship::OneToMany constructor.
one_to_many 'wsus_user_service' => ( attribute => has('@.membership' => (associated_class => 'Membership')), fetch_method => EAGER, cascade => ALL, );
Deserialises relation attribute
Inserts relationship data.
Merges relationship data.
Persistence::Relationship Persistence::Entity Persistence::Entity::Manager Persistence::ORM
The Persistence::Relationship::OneToMany 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.
Adrian Witas, adrian@webapp.strefa.pl
To install Persistence::Entity, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Persistence::Entity
CPAN shell
perl -MCPAN -e shell install Persistence::Entity
For more information on module installation, please visit the detailed CPAN module installation guide.