diff --git a/packages/knex/src/AbstractSqlDriver.ts b/packages/knex/src/AbstractSqlDriver.ts index f4d620aec1c5..ef74dc373841 100644 --- a/packages/knex/src/AbstractSqlDriver.ts +++ b/packages/knex/src/AbstractSqlDriver.ts @@ -354,7 +354,7 @@ export abstract class AbstractSqlDriver prop.primary || prop.defaultRaw); + const returningProps = meta!.hydrateProps.filter(prop => prop.primary || prop.defaultRaw); const returningFields = Utils.flatten(returningProps.map(prop => prop.fieldNames)); /* istanbul ignore next */ sql += returningFields.length > 0 ? ` returning ${returningFields.map(field => this.platform.quoteIdentifier(field)).join(', ')}` : ''; diff --git a/packages/knex/src/query/QueryBuilderHelper.ts b/packages/knex/src/query/QueryBuilderHelper.ts index cd68c165d771..afe0dd9236ad 100644 --- a/packages/knex/src/query/QueryBuilderHelper.ts +++ b/packages/knex/src/query/QueryBuilderHelper.ts @@ -566,7 +566,7 @@ export class QueryBuilderHelper { const useReturningStatement = type === QueryType.INSERT && this.platform.usesReturningStatement() && meta && !meta.compositePK; if (useReturningStatement) { - const returningProps = meta!.props.filter(prop => prop.primary || prop.defaultRaw); + const returningProps = meta!.hydrateProps.filter(prop => prop.primary || prop.defaultRaw); qb.returning(Utils.flatten(returningProps.map(prop => prop.fieldNames))); } } diff --git a/tests/issues/GH1626.test.ts b/tests/issues/GH1626.test.ts index a3b00d601928..245ef7397833 100644 --- a/tests/issues/GH1626.test.ts +++ b/tests/issues/GH1626.test.ts @@ -29,6 +29,11 @@ export class Author { @Property({ nullable: true }) name?: string; + @Property({ persist: false }) + get nickname(): string { + return this.name ?? '~'; + } + } describe('GH issue 1626', () => {