Sequelize - 将字段映射到模型定义中的字段别名
Posted
技术标签:
【中文标题】Sequelize - 将字段映射到模型定义中的字段别名【英文标题】:Sequelize - map fields to field alias in model definition 【发布时间】:2019-10-27 11:53:11 【问题描述】:我正在定义一个 Sequelize 模型来映射数据库中现有表中的字段。但是,表中的字段名称很长,对开发人员不友好。
是否可以将数据库字段名称映射到模型定义中的别名,以便我的服务可以使用对开发人员更友好的模型属性名称?
示例:
这...
// Horrible field names
module.exports = (sequelize, DataTypes) =>
sequelize.define('Transaction',
f_curr_finaccount__amount: DataTypes.DECIMAL,
f_curr_finaccount__tx_type: DataTypes.STRING,
f_finaccount__currency_iso_id: DataTypes.STRING,
f_lex_finaccount__tx_atomic_status: DataTypes.STRING
,
schema: 'fins',
tableName: 'fins_financialaccounttransaction',
timestamps: false
)
...变成...
// Developer-friendly field names
module.exports = (sequelize, DataTypes) =>
sequelize.define('Transaction',
amount:
type: DataTypes.DECIMAL,
fieldName: 'f_curr_finaccount__amount'
,
type:
type: DataTypes.STRING,
fieldName: 'f_curr_finaccount__tx_type'
,
currency:
type: DataTypes.STRING,
fieldName: 'f_finaccount__currency_iso_id'
,
status:
type: DataTypes.STRING,
fieldName: 'f_lex_finaccount__tx_atomic_status'
,
schema: 'fins',
tableName: 'fins_financialaccounttransaction',
timestamps: false
)
【问题讨论】:
【参考方案1】:与您所做的完全一样,但属性的名称只是 field
。包括外键在内的所有列都是相同的。
// Developer-friendly field names
module.exports = (sequelize, DataTypes) =>
sequelize.define('Transaction',
amount:
type: DataTypes.DECIMAL,
field: 'f_curr_finaccount__amount'
,
type:
type: DataTypes.STRING,
field: 'f_curr_finaccount__tx_type'
,
currency:
type: DataTypes.STRING,
field: 'f_finaccount__currency_iso_id'
,
status:
type: DataTypes.STRING,
field: 'f_lex_finaccount__tx_atomic_status'
,
schema: 'fins',
tableName: 'fins_financialaccounttransaction',
timestamps: false
)
【讨论】:
以上是关于Sequelize - 将字段映射到模型定义中的字段别名的主要内容,如果未能解决你的问题,请参考以下文章