とJavaでMapオブジェクトにテーブルを結合するマップIは、5つのMySQLテーブルJPA
employee
qualification
institute qualification_institute
(ID、qualification_id、 institute_id)employee_qualification_institute
(EMPLOYEE_IDを持っていますqualification_institute_id)
qualification_institute
は取得可能な資格と機関との間のManyToMany接続を定義し、employee_qualification_institute
は特定の従業員が資格を取得した機関を教えてくれます。 EclipseLinkはEmployee
クラスにSet<QualificationInstitute>
フィールドを生成しますが、代わりにMap<Qualification, Institute>
が必要です。その地図にどのように注釈を付けるべきですか?プロパティベースのアクセスがあるので、getterメソッドでクエリを実装する必要がありますか?
Qualification
クラスには既にSet<Institute>
フィールドが含まれ、クラスInstitute
にはSet<Qualification>
フィールドが含まれています。 Employee
の中に地図を注釈することができれば、明らかにEmployeeQualificationInstitute
クラスを持つ必要がなくなります。
だけで理解する... ManyToManyToMany関係した理由は何ですか?従業員EがInstitute I1の資格Q1、Institute I1の資格Q2、Institute I2の資格Q1、Institute I2の資格Q2を持つ可能性はありますか?はいの場合はOK、そうでない場合はDBデザインが悪いです。 – perissf
はい。各機関が複数の資格を提供している間に、複数の機関で一定の資格を取得することができます。従業員クラス内に必要なマップは、どの資格がどの機関から取得されたかを示すことです。 –