我在这里读过http://search.cpan.org/~frew/DBIx-Class-0.08200/lib/DBIx/Class/Manual/Cookbook.pod#Setting_default_values_for_a_row,一种为列设置默认值的方法是覆盖新的方法。
我的问题是我的新方法永远不会被调用。
用户.pm
package MyApp::SchemaTest::Result::User;
use strict;
use warnings;
use base qw/DBIx::Class::Core/;
sub new {
die "new: @_";
}
__PACKAGE__->table("GECKO_USER");
__PACKAGE__->add_columns(
"user_id",
{ data_type => "integer", is_auto_increment => 1, is_nullable => 0 },
"first_name",
{ data_type => "varchar2", is_nullable => 0, size => 45 },
"last_name",
{ data_type => "varchar2", is_nullable => 0, size => 45 } );
__PACKAGE__->set_primary_key("user_id");
1;
测试.pl
use Gecko2::SchemaTest;
my $schema = Gecko2::SchemaTest->connect("dbi:SQLite:$FindBin::Bin/../db/gecko2.sqlite");
ok($schema, "got schema");
my $user = $schema->resultset('User')->find( { login => 'toto' });
use DDP;
p $user;
而且我得到了完全构造和可操作的 $user 对象,这意味着我的全新方法永远不会被调用。 为什么不 ???
我试图移动它但没有任何成功......