NAME
Rose::DB::Object::Metadata::Relationship::OneToMany - One to many table relationship metadata object.
SYNOPSIS
use Rose::DB::Object::Metadata::Relationship::OneToMany;
$rel = Rose::DB::Object::Metadata::Relationship::OneToMany->new(...);
$rel->make_methods(...);
...DESCRIPTION
Objects of this class store and manipulate metadata for relationships in which a single row from one table refers to multiple rows in another table.
This class inherits from Rose::DB::Object::Metadata::Relationship. Inherited methods that are not overridden will not be documented a second time here. See the Rose::DB::Object::Metadata::Relationship documentation for more information.
METHOD MAP
- count
- 
Rose::DB::Object::MakeMethods::Generic, objects_by_key, interface => 'count'...
- find
- 
Rose::DB::Object::MakeMethods::Generic, objects_by_key, interface => 'find'...
- iterator
- 
Rose::DB::Object::MakeMethods::Generic, objects_by_key, interface => 'iterator'...
- get_set
- 
Rose::DB::Object::MakeMethods::Generic, objects_by_key, interface => 'get_set'...
- get_set_now
- 
Rose::DB::Object::MakeMethods::Generic, objects_by_key, interface => 'get_set_now'...
- get_set_on_save
- 
Rose::DB::Object::MakeMethods::Generic, objects_by_key, interface => 'get_set_on_save'...
- add_now
- 
Rose::DB::Object::MakeMethods::Generic, objects_by_key, interface => 'add_now'...
- add_on_save
- 
Rose::DB::Object::MakeMethods::Generic, objects_by_key, interface => 'add_on_save'...
See the Rose::DB::Object::Metadata::Relationship documentation for an explanation of this method map.
CLASS METHODS
- default_auto_method_types [TYPES]
- 
Get or set the default list of auto_method_types. TYPES should be a list of relationship method types. Returns the list of default relationship method types (in list context) or a reference to an array of the default relationship method types (in scalar context). The default list contains "find", "get_set_on_save", and "add_on_save". 
OBJECT METHODS
- build_method_name_for_type TYPE
- 
Return a method name for the relationship method type TYPE. For the method types "get_set", "get_set_now", and "get_set_on_save", the relationship's name is returned. For the method types "add_now" and "add_on_save", the relationship's name prefixed with "add_" is returned. For the method type "find", the relationship's name prefixed with "find_" is returned. For the method type "count", the relationship's name suffixed with "_count" is returned. Otherwise, undef is returned. 
- is_singular
- 
Returns false. 
- manager_class [CLASS]
- 
Get or set the name of the Rose::DB::Object::Manager-derived class used to fetch objects. The make_methods method will use Rose::DB::Object::Manager if this value is left undefined. 
- manager_method [METHOD]
- 
Get or set the name of the manager_class class method to call when fetching objects. The make_methods method will use get_objects if this value is left undefined. 
- manager_args [HASHREF]
- 
Get or set a reference to a hash of name/value arguments to pass to the manager_method when fetching objects. For example, this can be used to enforce a particular sort order for objects fetched via this relationship. For example: Product->meta->add_relationship ( code_names => { type => 'one to many', class => 'CodeName', column_map => { id => 'product_id' }, manager_args => { sort_by => CodeName->meta->table . '.name', }, }, );This would ensure that a Product'scode_names()are listed in alphabetical order. Note that the "name" column is prefixed by the name of the table fronted by theCodeNameclass. This is important because several tables may have a column named "name." If this relationship is used to form a JOIN in a query along with one of those tables, then the "name" column will be ambiguous. Adding a table name prefix disambiguates the column name.Also note that the table name is not hard-coded. Instead, it is fetched from the Rose::DB::Object-derived class that fronts the table. This is more verbose, but is a much better choice than including the literal table name when it comes to long-term maintenance of the code. See the documentation for Rose::DB::Object::Manager's get_objects method for a full list of valid arguments for use with the manager_argsparameter, but remember that you can define your own custom manager_class and thus can also define what kinds of argumentsmanager_argswill accept.
- map_column LOCAL [, FOREIGN]
- 
If passed a local column name LOCAL, return the corresponding column name in the foreign table. If passed both a local column name LOCAL and a foreign column name FOREIGN, set the local/foreign mapping and return the foreign column name. 
- column_map [HASH | HASHREF]
- 
Get or set a reference to a hash that maps local column names to foreign column names. 
- query_args [ARRAYREF]
- 
Get or set a reference to an array of query arguments to add to the query passed to the manager_method when fetching objects. 
- type
- 
Returns "one to many". 
AUTHOR
John C. Siracusa (siracusa@gmail.com)
COPYRIGHT
Copyright (c) 2008 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.