У меня есть 2 лица Студент и Intsructor. Я хочу реализовать интерфейс Dao с реализациями Dao для двух объектов. Я назначил одного пользователя класса в качестве родителя ученика инструктора:
@MappedSuperclass
public abstract class User {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name="id")
private int id;
@Column(name = "name")
private String firstName;
@Column(name = "password")
private String password;
@Column(name = "email")
private String email;
getters and setters ...
}
и детей. Студент
@Entity
@Table(name = "student", schema="els")
public class Student extends User {
@Column(name="achiev")
private String achievment;
public Student() {
}
getter and setter for achievment
}
и Инструктор
@Entity
@Table(name = "instructor", schema="els")
public class Instructor extends User {
@Column(name = "reputation")
private int reputation;
public Instructor() {
}
public int getReputation() {
return reputation;
}
public void setReputation(int reputation) {
this.reputation = reputation;
}
}
Интерфейс Дао:
public interface DAO {
List<User> getAllUsers();
...
}
с реализациями DAO для двух сущностей.
Но есть проблема. Я не могу сохранить все свойства каждого объекта, потому что в классе User у меня есть только некоторые из них. Студент и Инструктор, кроме унаследованных свойств, имеют свои собственные.
Как я могу реализовать DAO и сущности. Что такое хорошая практика c в этой ситуации?
Спасибо