SYNOPSIS

    package MyApp::Schema::Result::Foo_Bar;

    __PACKAGE__->load_components(qw{Helper::JoinTable Core});

    __PACKAGE__->join_table({
       left_class   => 'Foo',
       left_method  => 'foo',
       right_class  => 'Bar',
       right_method => 'bar',
    });

    # define parent class
    package ParentSchema::Result::Bar;

    use strict;
    use warnings;

    use parent 'DBIx::Class';

    __PACKAGE__->load_components('Core');

    __PACKAGE__->table('Bar');

    __PACKAGE__->add_columns(qw/ id foo_id /);

    __PACKAGE__->set_primary_key('id');

    __PACKAGE__->belongs_to( foo => 'ParentSchema::Result::Foo', 'foo_id' );

    # define subclass
    package MySchema::Result::Bar;

    use strict;
    use warnings;

    use parent 'ParentSchema::Result::Bar';

    __PACKAGE__->load_components(qw{Helper::SubClass Core});

    __PACKAGE__->subclass;

SEE ALSO

   DBIx::Class::Helper::Row::JoinTable,
   DBIx::Class::Helper::Row::SubClass, DBIx::Class::Helpers::Util