忽略Lucee Orm中的默认值

忽略Lucee Orm中的默认值,orm,cfml,lucee,Orm,Cfml,Lucee,我使用以下属性设置持久组件: <cfproperty name="active" ormType="timestamp" notnull="true" dbDefault="now()" /> 现在,如果我通过不在值处指定其created\u来保存一个实体,我会得到一个错误:notnull属性引用一个空值或临时值:User.active 创建实体时,如何跳过指定所有列 谢谢 我不会在数据库模式中设置默认值,而是使用default属性在实体的属性中定义它们以避免空值 但是,请记住

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

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

现在,如果我通过不在值处指定其
created\u来保存一个实体,我会得到一个错误:
notnull属性引用一个空值或临时值: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;
 }

}

该错误似乎与名为
active
的属性有关,而不是在
处创建的
。你能发布更多的代码来阐明你想做什么吗?谢谢,你说得对,这是添加实体I do
u=entityNew('user')时的代码
;u、 setEmail('mymail@domanin.com'); 实体保存(u),数据库结构(Postgresql)似乎正常,
ALTER TABLE用户添加列活动布尔值;ALTER TABLE users ALTER列活动集不为空;ALTER TABLE users ALTER COLUMN active SET DEFAULT false好,更有意义。您是否尝试过使用
default=false
而不是
dbdefault
,或者除了使用
dbdefault
。这应该确保保存实体时属性不具有空值。此外,对于后代来说,最好是编辑您的问题,使其显示您询问的属性(即
活动的
而不是
创建的
)。