これで私はそれを理解することができず、元の問題を汚染したくありません. 常に使用する必要があり{ wrappedReference: true }
ますIdentifiedReference
か?
なぜなら、これは失敗します:
@Entity({ collection: "account" })
export class AccountEntity implements IdEntity<AccountEntity> {
@PrimaryKey()
public id!: number;
@OneToOne(() => ArtistEntity, "account", { wrappedReference: true })
public artist!: IdentifiedReference<ArtistEntity>;
}
@Entity({ collection: "artist" })
export class ArtistEntity implements IdEntity<ArtistEntity> {
@PrimaryKey()
public id!: number;
@OneToOne(() => AccountEntity, { wrappedReference: true })
public account!: IdentifiedReference<AccountEntity>;
}
と:
src/entities/artistEntity.ts(15,38): エラー TS2345: タイプ '{ラップリファレンス: ブール値の引数; }' はタイプ '"id" のパラメーターに代入できません | "名前" | "パスワード" | "電子メール" | "画像" | "アーティスト" | "コレクション" | "スタジオ" | ((e: AccountEntity) => 任意) | 未定義'。オブジェクト リテラルは既知のプロパティのみを指定でき、'wrappedReference' はタイプ '(e: AccountEntity) => any' には存在しません。
それで、これは正しいでしょうか?
@Entity({ collection: "account" })
export class AccountEntity implements IdEntity<AccountEntity> {
@PrimaryKey()
public id!: number;
@OneToOne(() => ArtistEntity, "account", { wrappedReference: true })
public artist!: IdentifiedReference<ArtistEntity>;
}
@Entity({ collection: "artist" })
export class ArtistEntity implements IdEntity<ArtistEntity> {
@PrimaryKey()
public id!: number;
@OneToOne(() => AccountEntity)
public account!: IdentifiedReference<AccountEntity>;
}