扩展 Room 实体并使用相同的 DAO 和存储库是一种好的做法吗?

Is a good practice to extend a Room Entity and use the same DAO and Repository?

我想创建两个具有相同 字段 的实体,我看到我可以扩展一个实体来继承字段,我会想知道这样做是否是一种好的做法,以及对这些实体使用单个 DAO 和存储库是否有任何问题。

我要重用的实体

@Entity
public class LoggedUsers {
    @PrimaryKey
    public int id;
    public String firstName;
    public String lastName;
}

具有相同字段的新实体

@Entity
public class HistoryUsers extends LoggedUsers  {

        //Same fields of the other entity

}

正如@MergimRama 所说,这不是一个好主意。使用嵌入对象。

对于嵌入式对象,我应该创建一个 class,其中包含我要使用的字段:

public class UserName {

    public String firstName;
    public String lastName;

}

并在我的实体中重复使用 class 字段,就像这样:

@Entity
public class LoggedUsers {

    @PrimaryKey public int id;

    @Embedded public UserName username;    //Here goes the fields

}

@Entity
public class HistoryUsers {

    @PrimaryKey public int id;

    @Embedded public UserName username;    //Here goes the fields

}