diff --git a/lib/PostgreSQL/store.js b/lib/PostgreSQL/store.js index e2918d2..f51ee6f 100644 --- a/lib/PostgreSQL/store.js +++ b/lib/PostgreSQL/store.js @@ -176,13 +176,31 @@ class PostgreSQLStore extends CascadeStore_1.CascadeStore { } break; } + // TODO: 这里和mysql统一行为,ref类型的字符串去除前后空格 + case "char": + case "ref": { + if (value) { + (0, assert_1.default)(typeof value === 'string'); + r[attr] = value.trim(); + } + else { + r[attr] = value; + } + break; + } default: { r[attr] = value; } } } else { - r[attr] = value; + // TODO: 这里和mysql统一行为,id字段为char类型时,去除后面的空格 + if (value && typeof value === 'string' && attr === 'id') { + r[attr] = value.trim(); + } + else { + r[attr] = value; + } } } else { diff --git a/src/PostgreSQL/store.ts b/src/PostgreSQL/store.ts index 3bc79c1..7320460 100644 --- a/src/PostgreSQL/store.ts +++ b/src/PostgreSQL/store.ts @@ -243,12 +243,28 @@ export class PostgreSQLStore< } break; } + // TODO: 这里和mysql统一行为,ref类型的字符串去除前后空格 + case "char": + case "ref": { + if (value) { + assert(typeof value === 'string'); + r[attr] = value.trim(); + } else { + r[attr] = value; + } + break; + } default: { r[attr] = value; } } } else { - r[attr] = value; + // TODO: 这里和mysql统一行为,id字段为char类型时,去除后面的空格 + if (value && typeof value === 'string' && attr === 'id') { + r[attr] = value.trim(); + } else { + r[attr] = value; + } } } else { assign(r, { [attr]: value }); @@ -305,7 +321,7 @@ export class PostgreSQLStore< option?: PostgreSQLSelectOption ): Promise[]> { const sql = this.translator.translateSelect(entity, selection, option); - console.log('selection:', JSON.stringify(selection, null , 2), 'Select SQL:', sql); + console.log('selection:', JSON.stringify(selection, null, 2), 'Select SQL:', sql); const result = await this.connector.exec(sql, context.getCurrentTxnId()); return this.formResult(entity, result[0]); }