忽略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 dou=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
。这应该确保保存实体时属性不具有空值。此外,对于后代来说,最好是编辑您的问题,使其显示您询问的属性(即活动的而不是创建的)。