簡體   English   中英

DAO 接口:2 個實體的實現(Java、Hibernate)

[英]DAO interface: Implementation for 2 entities (Java, Hibernate)

我有 2 個實體學生和講師。 我想用 Dao 實現為兩個實體實現 Dao 接口。 我將一個類 User 設置為 Student an Instructor 的父母:

@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 類中我只有其中一些。 Student 和 Instructor 除了繼承屬性外,它們還有自己的屬性。

我怎樣才能實現 DAO 和實體。 在這種情況下有什么好的做法?

謝謝

您可以嘗試使用泛型。

public interface GenericDAO<T> {
  List<T> getAll();
}

並且在需要時,您可以擴展和定義特定功能。

public interface UserDAO extends GenericDAO<User> {
    User getAllWithAvatar();
}

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM