Java 从另一个类/接口继承实体类是否正确?
假设我有两个hibernate实体类:Java 从另一个类/接口继承实体类是否正确?,java,hibernate,Java,Hibernate,假设我有两个hibernate实体类:classplayer和classpartner,这两个类都将参与邮件。也就是说,它们都包含以下字段: String email; Integer id; String name 我想创建一个界面,如下所示: public interface Recipient{ public String getEmail(); public String getName(); public Integer getId(); } 本质
classplayer
和classpartner
,这两个类都将参与邮件。也就是说,它们都包含以下字段:
String email;
Integer id;
String name
我想创建一个界面,如下所示:
public interface Recipient{
public String getEmail();
public String getName();
public Integer getId();
}
本质上,这些类类似于以下内容:
@Entity
@Table(name = "player")
@Inheritance(strategy = InheritanceType.JOINED)
class Player implements Recipient
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "ps_id")
private String psId;
@Column(name = "login")
private String login;
@Column(name = "password")
private String password;
@Column(name = "email")
private String email;
//GET, SET and inherited method impl
}
这是正确的方法,还是在hibernate中不应该编写一个实体类,从另一个类/接口继承一个
Just POJO
您可以在接口类上使用@MappedSuperclass
注释。好吧,这是正确的方法。问题是不需要创建实体类。我只想创建一个接口来封装我的实体的列名。如果你只想放一些getter,不需要注释。如果要放置一些db字段,将它们映射到列,则需要注释。你可以查看这个链接:有趣。。。据了解,无需将@MappedSuperclass
实体映射到数据库表。我们只定义列名称,后者可能会被覆盖。对吧?对。如果需要,您不能将MappedSuperClass映射到某个表,而是在其中定义字段和关系。我不能100%确定我们是否可以在子类中重写它们