0

我用这个属性设置了我的持久化组件:

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

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

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

谢谢!

4

1 回答 1

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;
 }

}
于 2015-12-28T20:02:42.330 回答