chore(backend): concrete returning

This commit is contained in:
Acid Chicken (硫酸鶏) 2024-05-29 22:35:34 +09:00
parent 6302a8b904
commit 9227496389
No known key found for this signature in database
GPG Key ID: 3E87B98A3F6BAB99
2 changed files with 6 additions and 5 deletions

View File

@ -212,8 +212,8 @@ export default abstract class Chart<T extends Schema> {
} {
const createEntity = (span: 'hour' | 'day'): EntitySchema => new EntitySchema({
name:
span === 'hour' ? `ChartX${name.replace(/[^a-zA-Z0-9]/g, '')}` :
span === 'day' ? `ChartDayX${name.replace(/[^a-zA-Z0-9]/g, '')}` :
span === 'hour' ? `ChartX${name}` :
span === 'day' ? `ChartDayX${name}` :
new Error('not happen') as never,
tableName:
span === 'hour' ? `__chart__${camelToSnake(name)}` :

View File

@ -96,9 +96,10 @@ export const miRepository = {
return queryBuilder.expressionMap.insertColumns;
},
async insertOne(entity, findOptions?) {
const queryBuilder = this.createQueryBuilder().insert().values(entity).returning('*');
const queryBuilder = this.createQueryBuilder().insert().values(entity);
queryBuilder.expressionMap.mainAlias!.name = 't';
const columnNames = this.createTableColumnNames(queryBuilder);
const columnNames = this.createTableColumnNames(queryBuilder).map(column => `__disambiguation__${column}`);
queryBuilder.returning(columnNames.map(column => `"${column.slice('__disambiguation__'.length)}" AS "${column}"`).join());
const builder = this.createQueryBuilder().addCommonTableExpression(queryBuilder, 'cte', { columnNames });
builder.expressionMap.mainAlias!.tablePath = 'cte';
this.selectAliasColumnNames(queryBuilder, builder);
@ -114,7 +115,7 @@ export const miRepository = {
return builder.select(selection, selectionAliasName);
};
for (const columnName of this.createTableColumnNames(queryBuilder)) {
selectOrAddSelect(`${builder.alias}.${columnName}`, `${builder.alias}_${columnName}`);
selectOrAddSelect(`"${builder.alias}"."__disambiguation__${columnName}"`, `"${builder.alias}_${columnName}"`);
}
},
} satisfies MiRepository<ObjectLiteral>;