我用这个属性设置了我的持久化组件:
<cfproperty name="active" ormType="timestamp" notnull="true" dbDefault="now()" />
现在,如果我通过不指定它的值来保存实体created_at
,我会收到一个错误:not-null property references a null or transient value: User.active
.
创建实体时如何跳过指定所有列?
谢谢!
我不会在数据库模式中设置默认值,而是使用default
属性在实体的属性中定义它们以避免空值。
但是,请记住,只有简单和非动态值(例如固定字符串和数字)才能定义为默认值。如果你需要定义一个复杂的值,比如一个数组,或者一个动态的值,比如Now()
,你需要在实体的init()
方法中设置它们。
component name="user" accessors=true persistent=true{
property name="active" ormtype="boolean" default=false;
property name="created_at" ormtype="timestamp";
function init(){
variables.created_at=Now();
return this;
}
}