+Columns and relationships which are excluded from the updates hashref aren't
+touched at all.
+
+=head2 Treatment of belongs_to relations
+
+In case the relationship is included but undefined in the updates hashref,
+all columns forming the relationship will be set to null.
+If not all of them are nullable, DBIx::Class will throw an error.
+
+Updating the relationship:
+
+ my $dvd = $dvd_rs->recursive_update( {
+ id => 1,
+ owner => $user->id,
+ });
+
+Clearing the relationship (only works if cols are nullable!):
+
+ my $dvd = $dvd_rs->recursive_update( {
+ id => 1,
+ owner => undef,
+ });
+
+=head2 Treatment of might_have relationships
+
+In case the relationship is included but undefined in the updates hashref,
+all columns forming the relationship will be set to null.
+
+Updating the relationship:
+
+ my $user = $user_rs->recursive_update( {
+ id => 1,
+ address => {
+ street => "101 Main Street",
+ city => "Podunk",
+ state => "New York",
+ }
+ });
+
+Clearing the relationship:
+
+ my $user = $user_rs->recursive_update( {
+ id => 1,
+ address => undef,
+ });
+
+=head2 Treatment of has_many relations
+
+In case the relationship is included but undefined or an empty array, the
+related rows will be deleted or their foreign key column set to null depending
+on if_not_submitted parameter (set_to_null or delete).
+It defaults to undefined which skips both.
+
+Updating the relationship:
+
+ Passing ids:
+
+ my $dvd = $dvd_rs->recursive_update( {
+ id => 1,
+ tags => [1, 2],
+ });
+
+ Passing hashrefs:
+
+ my $dvd = $dvd_rs->recursive_update( {
+ id => 1,
+ tags => [
+ {
+ id => 1,
+ file => 'file0'
+ },
+ {
+ id => 2,
+ file => 'file1',
+ },
+ ],
+ });
+
+ Passing objects:
+
+ TODO