Spring Data JPA で使用していたいくつかの機能を、新しいリアクティブ データ r2dbc で複製しようとしています。r2dbc が本格的な ORM ではないことは承知していますが、r2dbc で以下のシナリオを再現する最善の方法を理解したいと考えています。
public class Doctor extends BaseModel {
//other fields and id
@NotNull
@Enumerated(EnumType.STRING)
@ElementCollection(fetch = FetchType.LAZY, targetClass = Language.class)
@CollectionTable(name = "doctor_language",
joinColumns = @JoinColumn(name = "doctor_id"))
@Column(name = "language")
private List<Language> languages = new ArrayList<>();
@OneToMany(fetch = FetchType.LAZY, targetEntity = DoctorHealthProvider.class, mappedBy =
"doctor")
private List<DoctorHealthProvider> providers = new ArrayList<>();
// other fields
}
Spring Data JPA を使用する場合、DoctorRepository (JpaRepository を拡張する) での単純な findById 呼び出しにより、テーブルdoctor
からの言語のリストとdoctor_language
テーブルからの健康プロバイダーのリストを含むオブジェクトが得られます。health_provider
プロジェクションについて読んでいましたが、Reactive Spring で上記を実装する最良の方法を理解できなかったようです。ヘルプ/ガイドライン/指示をいただければ幸いです。
ありがとう