DBIx :: Class ResultSource에서 new() 메서드를 사용하여 (잠재적으로 임시) 변수를 만들 때 DBIC 스키마에 지정된 기본값으로 속성을 채우지 않는 것 같습니다 (테이블 생성을 위해 지정한 값) 그 스키마로부터).Perl DBIx :: Class - new()를 사용할 때의 기본값?
현재는 그 클래스
sub new {
my $class = shift;
my $self = $class->next::method(@_);
$self->queue('DEFAULT_QUEUE_VAL') unless $self->queue();
return $self;
}
하나 개 같은 클래스 (이 문제 된 첫 번째의 경우)에 대해 하나 개의 디폴트 값을 만드는 (즉, 속성 큐 => DEFAULT_QUEUE_VAL). 그러나 장기적으로 우리는 다양한 기본값을 갖는 몇 개의 DBIC 클래스를 가지며, 모든 다양한 경우에 대해 위의 로직을 복제하는 것을 피하고 싶습니다.
이 작업을 수행 할 수있는 CPAN 모듈/플러그인이 있습니까? 우리는 CPAN에 대한 우리의 (겉으로보기에는 너무) 검색을 보지 못했습니다.
편집 : 코드 샘플에서 일부 가비지가 수정되었습니다. 구식 코드에서 나는 cp'd했다.
기본값이 단순한 값 (예 : SQL 함수 호출)이 아닌 경우이 유형의 기법이 중단된다는 점에 유의해야합니다. 가능한 경우 데이터베이스에 행을 삽입하고 (안전을 위해 트랜잭션 내에있을 수도 있음) 열 값을 다시 쿼리하는 것이 좋습니다. 그 기술이 효과가 없다면 당신이 요구하는 것을해라. – hobbs