chore(backend): concrete returning
This commit is contained in:
parent
6302a8b904
commit
9227496389
|
@ -212,8 +212,8 @@ export default abstract class Chart<T extends Schema> {
|
||||||
} {
|
} {
|
||||||
const createEntity = (span: 'hour' | 'day'): EntitySchema => new EntitySchema({
|
const createEntity = (span: 'hour' | 'day'): EntitySchema => new EntitySchema({
|
||||||
name:
|
name:
|
||||||
span === 'hour' ? `ChartX${name.replace(/[^a-zA-Z0-9]/g, '')}` :
|
span === 'hour' ? `ChartX${name}` :
|
||||||
span === 'day' ? `ChartDayX${name.replace(/[^a-zA-Z0-9]/g, '')}` :
|
span === 'day' ? `ChartDayX${name}` :
|
||||||
new Error('not happen') as never,
|
new Error('not happen') as never,
|
||||||
tableName:
|
tableName:
|
||||||
span === 'hour' ? `__chart__${camelToSnake(name)}` :
|
span === 'hour' ? `__chart__${camelToSnake(name)}` :
|
||||||
|
|
|
@ -96,9 +96,10 @@ export const miRepository = {
|
||||||
return queryBuilder.expressionMap.insertColumns;
|
return queryBuilder.expressionMap.insertColumns;
|
||||||
},
|
},
|
||||||
async insertOne(entity, findOptions?) {
|
async insertOne(entity, findOptions?) {
|
||||||
const queryBuilder = this.createQueryBuilder().insert().values(entity).returning('*');
|
const queryBuilder = this.createQueryBuilder().insert().values(entity);
|
||||||
queryBuilder.expressionMap.mainAlias!.name = 't';
|
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 });
|
const builder = this.createQueryBuilder().addCommonTableExpression(queryBuilder, 'cte', { columnNames });
|
||||||
builder.expressionMap.mainAlias!.tablePath = 'cte';
|
builder.expressionMap.mainAlias!.tablePath = 'cte';
|
||||||
this.selectAliasColumnNames(queryBuilder, builder);
|
this.selectAliasColumnNames(queryBuilder, builder);
|
||||||
|
@ -114,7 +115,7 @@ export const miRepository = {
|
||||||
return builder.select(selection, selectionAliasName);
|
return builder.select(selection, selectionAliasName);
|
||||||
};
|
};
|
||||||
for (const columnName of this.createTableColumnNames(queryBuilder)) {
|
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>;
|
} satisfies MiRepository<ObjectLiteral>;
|
||||||
|
|
Loading…
Reference in New Issue