对于外键,有没有办法让扭矩将 0 值转换为空值?
我有以下架构:
<table name="juser" idMethod="native">
<column name="id" primaryKey="true" required="true" type="INTEGER"/>
<column name="name" required="true" size="2147483647" type="VARCHAR"/>
</table>
<table name="juserDepend" idMethod="native">
<column name="id" primaryKey="true" required="true" type="INTEGER"/>
<column name="juserRef" required="false" type="INTEGER"/>
<foreign-key foreignTable="juser">
<reference foreign="id" local="juserRef"/>
</foreign-key>
</table>
我的表是用这个 sql 创建的:
create table juserDepend(id serial not null primary key,
juserRef int,
name text not null,
foreign key(juserRef) references juser(id) on delete cascade
);
可以看出,在 JuserDepend 中有一个指向 juser 表的可选外键(juserRef),但我似乎无法理解这一点。现在我无法在 juserRef 中保存一个带有空值的 juserDepend 对象,因为扭矩使用整数值 0,然后数据库会抱怨它,因为它不是有效的外键。
我首选的解决方案是将扭矩简单地转换为 0 到 null,对于 null 是允许值的所有外键。这可能吗?