- DOCUMENTATION CONTEXT
- PRIVATE METHODS
- "PROTECTED" METHODS
DBIx::DataModel::Doc::Internals - Description of the internal structure
This chapter is part of the
This chapter documents some details that normally should not be relevant to clients; you only want to read about them if you intend to extend the framework.
Creates a new Perl package of name
$pckName that inherits from
@$isa_arrayref. Raises an exception if the package name already exists.
DBIx::DataModel::Schema ->_defineMethod($pckName, $methName, $coderef, $silent);
Defines a new method in package
$pckName, bound to
$coderef; or undefines a method if
undef. Raises an exception if the method name already exists in that package. Generates a warning if the method name already exists in a parent class, unless the optional
$silent argument is true.
Internal implementation for insertions into the database : takes keys and values within
%$obj, generates SQL for insertion of those values into
$obj->dbTable, and executes it. Never called directly, but used by the protected method _singleInsert.
Implementation for inserting a record into the database; should never be called directly, but is used as a backend by the insert method.
This method receives an object blessed into some table class; the object hash should only contain keys and values to be directly inserted into the database, i.e. the
noUpdateColumns and all references to foreign objects should have been removed ( normally the insert method has already done that job). The
_singleInsert method calls "_rawInsert" for performing the database update, and then makes sure that the object contains its own key, calling DBI's last_insert_id() if necessary, as explained in the insert documentation.
You may redeclare
_singleInsert in your own table classes, for example if you need to compute a key by other means, like constructing it from other fields, or generating it from a random number. That key should be both inserted into the object and returned to the caller.