@inheritanceタイプで参加しました
クラスの人、従業員、学生がいます
Personに共通の列があり、personクラスからアクセスする必要がある場合はdiscriminator列のゲッターセッターがあります
@Inheritance(strategy = InheritanceType.JOINED)@DiscriminatorColumn(name = "PERSON_TYPE"、discriminatorType = DiscriminatorType.STRING)パブリッククラスPerson
@Column(name = "RELATIONSHIP_TYPE"、insertable = false、nullable = false、updatable = false)プライベート文字列relationType;
//ゲッターとセッター
@DiscriminatorValue( "STUDENT")@PrimaryKeyJoinColumn(name = "PERSON_ID")パブリッククラスStudent
@DiscriminatorValue( "EMPLOYEE")@PrimaryKeyJoinColumn(name = "PERSON_ID")public class Employee
したがって、EmployeeまたはStudentレコードを保存してから、Personレコードを取得すると、識別子の列の値がNULLとして返されますが、サーバーを再起動すると、それに応じて値が返されます。
弁別子列の値を手動で設定してから保存して取得すると、値が表示されます(弁別子列の値を手動で設定する必要がありますか?)、弁別子列を使用する利点は何ですか?
なぜ私は列タイプを持つ従業員と学生との人のOneToMany関係を使用しないのですか?列挙型を介して列にパースペクティブ値を入力でき、その列にも遅延フェッチを適用します
提案してください
事前に感謝ラマンディープシン