继续处理外键为空的边界,如果是entity的话还要考虑entity复选多种

This commit is contained in:
Xu Chang 2022-12-06 12:24:24 +08:00
parent 57ec2e8931
commit 16aeb4c64d
2 changed files with 4 additions and 4 deletions

View File

@ -138,9 +138,9 @@ var MysqlStore = /** @class */ (function (_super) {
var rel = (0, relation_1.judgeRelation)(schema, e, attr);
if (rel === 2) {
// 边界如果是toModi的对象这里的外键确实有可能为空
(0, assert_1.default)(schema[e].toModi || r.entityId === r[attr].id, "\u5BF9\u8C61".concat(e, "\u53D6\u6570\u636E\u65F6\uFF0C\u53D1\u73B0entityId\u4E0E\u8FDE\u63A5\u7684\u5BF9\u8C61\u7684\u4E3B\u952E\u4E0D\u4E00\u81F4\uFF0CrowId\u662F").concat(r.id, "\uFF0C\u5176entityId\u503C\u4E3A").concat(r.entityId, "\uFF0C\u8FDE\u63A5\u7684\u5BF9\u8C61\u7684\u4E3B\u952E\u4E3A").concat(r[attr].id));
(0, assert_1.default)(schema[e].toModi || r.entity !== attr || r.entityId === r[attr].id, "\u5BF9\u8C61".concat(e, "\u53D6\u6570\u636E\u65F6\uFF0C\u53D1\u73B0entityId\u4E0E\u8FDE\u63A5\u7684\u5BF9\u8C61\u7684\u4E3B\u952E\u4E0D\u4E00\u81F4\uFF0CrowId\u662F").concat(r.id, "\uFF0C\u5176entityId\u503C\u4E3A").concat(r.entityId, "\uFF0C\u8FDE\u63A5\u7684\u5BF9\u8C61\u7684\u4E3B\u952E\u4E3A").concat(r[attr].id));
if (r[attr].id === null) {
(0, assert_1.default)(schema[e].toModi || r.entityId === null);
(0, assert_1.default)(schema[e].toModi || r.entity !== attr);
delete r[attr];
continue;
}

View File

@ -148,9 +148,9 @@ export class MysqlStore<ED extends EntityDict & BaseEntityDict, Cxt extends Asyn
const rel = judgeRelation(schema, e, attr);
if (rel === 2) {
// 边界如果是toModi的对象这里的外键确实有可能为空
assert (schema[e].toModi || r.entityId === r[attr].id, `对象${<string>e}取数据时发现entityId与连接的对象的主键不一致rowId是${r.id}其entityId值为${r.entityId},连接的对象的主键为${r[attr].id}`);
assert (schema[e].toModi || r.entity !== attr || r.entityId === r[attr].id, `对象${<string>e}取数据时发现entityId与连接的对象的主键不一致rowId是${r.id}其entityId值为${r.entityId},连接的对象的主键为${r[attr].id}`);
if (r[attr].id === null) {
assert(schema[e].toModi || r.entityId === null);
assert(schema[e].toModi || r.entity !== attr);
delete r[attr];
continue;
}