[Catalyst] DBIx::Class method,
"update_or_create_related" - it tries to populate the primary key
value of the related object
zzbbyy at gmail.com
Mon Aug 18 14:41:57 BST 2008
Maybe this: http://perlalchemy.blogspot.com/2008/06/dbixclass-gotchas.html
- would be a better intro into the subject.
On Mon, Aug 18, 2008 at 3:20 PM, Zbigniew Lukasiak <zzbbyy at gmail.com> wrote:
> On Mon, Aug 18, 2008 at 2:56 PM, <kakimoto at tpg.com.au> wrote:
>> hello, all,
>> I am trying to use DBIx::Class method, "update_or_create_related" to
>> cut down the amount of code I have. My code has happily worked with
>> 1) me manually doing a search (with "find") to see if an object in
>> question exists or not. If it doesn't, I will issue a "new"/"create" .
>> Else, the "find" will give out the object, I perform whatever I need to
>> perform on the attributes and update it.
>> 2) the database table of the related object has a nice sequence set up
>> for its primary key, "ID".
>> Now, when I tried to use "update_or_create_related", the code actually
>> produces an error for which the "ID" attribute in the SQL for INSERT is
>> null and hence, cannot be inserted to the database engine for reason
>> that a primary key attribute value can never be NULL.
>> It's fair up there but I just do not know why is DBIX::Class even
>> bothering to put the primary key value, ID into the dynamic SQL that it
>> uses to insert the entry into the database when there's already a
>> sequence declared for it....
> It's a long story - you might have a look at:
> to see some discussion about it. I also posted some code for a
> DBIx::Class "plugin" with a modified update_or_create_related method
> (which should work for you and additionaly it allows for recursive
> updating the database). It is not really polished code - it requires
> some name changes - but it has test :)
> By the way - there is a separate DBIC mailing list (see the link
> above) where you should direct emails in thit subject.
> Zbigniew Lukasiak
More information about the Catalyst