typescript egg mysql_egg-sequelize+typescript一对一关联查询错误

2023-05-16

这里我创建了两张表,一张是文章表,一张是文章类型表

文章表model

// app/model/Article.ts

import { Application } from 'egg';

export default function(app: Application) {

const { INTEGER, STRING } = app.Sequelize;

const Article = app.model.define('article', {

id: {

type: INTEGER,

primaryKey: true,

autoIncrement: true,

},

title: STRING(255),

case_id: INTEGER,

}, {

timestamps: false, // 去除createAt updateAt

freezeTableName: true, // 使用自定义表名

});

return class extends Article {

static associate() {

app.model.Article.belongsTo(app.model.Case, { foreignKey: 'case_id', targetKey: 'id' });

}

};

}

文章类型表model

import { Application } from 'egg';

export default function(app: Application) {

const { INTEGER, STRING } = app.Sequelize;

const Case = app.model.define('case', {

id: {

type: INTEGER,

primaryKey: true,

autoIncrement: true,

},

value: STRING(255),

}, {

timestamps: false, // 去除createAt updateAt

freezeTableName: true, // 使用自定义表名

});

return class extends Case {};

}

我在文章类型表中写试过这样写的

return class extends Case {

static associate() {

app.model.Case.hasMany(app.model.Article, { as: 'articles' });

}

};

虽然我感觉不用加这个 hasMany,因为我这个只是一对一,在文章表中我已经使用 belongsTo 进行关联了,只是官方demo是这样写的,但是还是会报错,报错信息如下:

28f0f3c508b4ab7dbd037236ced86969.png

里面的sql语句是这个

SELECT ``.`id`, ``.`title`, ``.`case_id`, `case`.`id` AS `case.id` FROM `article` AS `` LEFT OUTER JOIN `case` AS `case` ON ``.`case_id` = `case`.`id`;

我试了下

SELECT

`article`.`id`,

`article`.`title`,

`article`.`case_id`,

`case`.`id` AS `case.id`

FROM

`article` AS `article`

LEFT OUTER JOIN `case` AS `case` ON ``.`case_id` = `case`.`id`;

要这么写才会出现结果,有大佬知道在belongsTo中该怎么写才能给表重命名呢,不是给关联的表case重命名,这个用 as 就可以重命名了,是给 article 重命名

看错误信息是两个表都有 id 字段,当连接的时候会出现列重复,这种在mysql里面很好解决,直接指定显示哪个表的id就好,但是在代码里面有点懵逼,希望有大佬能帮帮我

数据库表

case表

4da66e2bdcb5d05c2cc3f8571f6480e4.png

article表

489d41ef64e9541a05a058bf45ab27a3.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

typescript egg mysql_egg-sequelize+typescript一对一关联查询错误 的相关文章

随机推荐