Lucee Orm中忽略的默认值

时间:2015-12-27 18:19:04

标签: orm cfml lucee

我使用此属性设置持久性组件:

<cfproperty name="active" ormType="timestamp" notnull="true" dbDefault="now()" />

现在,如果我通过不指定其created_at值来保存实体,则会收到错误:not-null property references a null or transient value: User.active

如何在创建实体时跳过指定所有列?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不是在数据库模式中设置默认值,而是使用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;
 }

}