Userクラスがあります:
@Entity
public class User extends Model {
@Id
public Long id;
public String email;
public String name;
public String password;
}
とドライバークラス
@Entity
public class Driver extends Model {
@Id
public Long id;
@OneToOne (cascade = CascadeType.ALL)
@Column(unique = true)
public User user;
}
user_idがDriversテーブル内で一意であることを確認したいと思います。しかし、上記のコードはそれを強制しません。(同じユーザーIDで複数のドライバーを作成できます)。
理想的には、ユーザークラスに@OneToOneリレーションを追加したくありません。これは、アプリ内にいくつかの異なる役割(ドライバー、教師、エージェントなど)があり、これらすべてのリレーションでユーザークラスを汚染したくないためです。
どうすればこれを達成できますか?