|
1 | 1 | import {CockroachDriver} from "../driver/cockroachdb/CockroachDriver"; |
2 | 2 | import {SapDriver} from "../driver/sap/SapDriver"; |
| 3 | +import { ColumnMetadata } from "../metadata/ColumnMetadata"; |
3 | 4 | import {QueryBuilder} from "./QueryBuilder"; |
4 | 5 | import {ObjectLiteral} from "../common/ObjectLiteral"; |
5 | 6 | import {Connection} from "../connection/Connection"; |
@@ -381,6 +382,7 @@ export class UpdateQueryBuilder<Entity> extends QueryBuilder<Entity> implements
|
381 | 382 | |
382 | 383 | // prepare columns and values to be updated |
383 | 384 | const updateColumnAndValues: string[] = []; |
| 385 | +const updatedColumns: ColumnMetadata[] = []; |
384 | 386 | const newParameters: ObjectLiteral = {}; |
385 | 387 | let parametersCount = this.connection.driver instanceof MysqlDriver || |
386 | 388 | this.connection.driver instanceof AuroraDataApiDriver || |
@@ -399,6 +401,7 @@ export class UpdateQueryBuilder<Entity> extends QueryBuilder<Entity> implements
|
399 | 401 | |
400 | 402 | columns.forEach(column => { |
401 | 403 | if (!column.isUpdate) { return; } |
| 404 | +updatedColumns.push(column); |
402 | 405 | |
403 | 406 | const paramName = "upd_" + column.databaseName; |
404 | 407 | |
@@ -458,9 +461,9 @@ export class UpdateQueryBuilder<Entity> extends QueryBuilder<Entity> implements
|
458 | 461 | }); |
459 | 462 | }); |
460 | 463 | |
461 | | -if (metadata.versionColumn) |
| 464 | +if (metadata.versionColumn && updatedColumns.indexOf(metadata.versionColumn) === -1) |
462 | 465 | updateColumnAndValues.push(this.escape(metadata.versionColumn.databaseName) + " = " + this.escape(metadata.versionColumn.databaseName) + " + 1"); |
463 | | -if (metadata.updateDateColumn) |
| 466 | +if (metadata.updateDateColumn && updatedColumns.indexOf(metadata.updateDateColumn) === -1) |
464 | 467 | updateColumnAndValues.push(this.escape(metadata.updateDateColumn.databaseName) + " = CURRENT_TIMESTAMP"); // todo: fix issue with CURRENT_TIMESTAMP(6) being used, can "DEFAULT" be used?! |
465 | 468 | |
466 | 469 | } else { |
|