sqlite - Sequelize 生成的列 sqlite
问题描述
我的表sqlite
有四列 a、b、c、d。
c
isa-b
和d
is中的值a+b
。
我将我的模型定义为
const myModel = sequelize.define('mymodel', {a:Sequelize.INTEGER,b:Sequelize.INTEGER,c:Sequelize.INTEGER,d:Sequelize.INTEGER}
并创建一个对象
var myModelObj = {a:10, b:20, c:function(){return this.a - this.b}, d:function(){return this.a + this.b}
然后在数据库中创建数据
myModel.create(myModelObj);
当我这样做时,它很好。但我正在寻找一种方法,可以在模型定义本身中定义 c、d 的值生成器。有没有办法做到这一点。
解决方案
如文档中所述,您可以定义 getter 和 setter
const myModel = sequelize.define(
'mymodel',
{
a:Sequelize.INTEGER,
b:Sequelize.INTEGER,
c: {
Sequelize.INTEGER,
get() {
const a = this.getDataValue('a');
const b = this.getDataValue('b');
return a-b;
},
set() {
const a = this.getDataValue('a');
const b = this.getDataValue('b');
return a-b;
},
},
d: {
Sequelize.INTEGER,
get() {
const a = this.getDataValue('a');
const b = this.getDataValue('b');
return a+b;
},
set() {
const a = this.getDataValue('a');
const b = this.getDataValue('b');
return a+b;
},
},
}
);
推荐阅读
- php - Laravel 雄辩的更新方法不保存父关系
- docker-compose - 无法将图像推送到 Azure Container Register。为什么创建的资源没有出现在 Azure 仪表板中?
- python-3.x - 如何使用来自 python 的基线连接 Hive 数据库?
- winforms - 系统 Windows 窗体 - 将项目列表绑定到列表视图控件
- lambda - 方案语言中的“@”是什么意思?
- reactjs - 有没有办法知道一个承诺是否没有得到解决?
- typescript - 如何扁平化具有嵌套子属性的对象类型?
- python - 我在使用 Netflix 数据时遇到了数据准备问题
- javascript - 如何使用 AWS-SDK 和 MulterS3 将文件上传到数字海洋空间
- saleor - Saleor 迁移失败(django.db.utils.DataError)