我有一些属性,比如在大多数POJO中常见的createdDate,createBy,modifiedDate,modifiedBy,deletedDate,deletedBy。
我可以在超类中声明这些属性,然后在其他类中扩展它...... ??
答案 0 :(得分:2)
是的,你可以。我不明白为什么你至少不能自己尝试。
public class Base {
protected Date createdDate;
public Base() {
createDate = new Date();
}
}
public class SubClass extends Base {
public SubClass() {
// you can access createdDate here
}
}
答案 1 :(得分:0)
是的。但你需要小心。
因为在这种情况下,在这些字段对相等性有显着贡献的情况下,覆盖equals和hashcode几乎成为强制性的。 如上所述here
也有一些副作用答案 2 :(得分:0)
正如大家所解释的那样,这在继承视图中是完全有效的。既然你已经添加了hibernate标签,你对数据库中列的意图是什么? 您是否需要将这些属性存在于公共父表中,或者您希望在每个单独的表中添加这些属性。 您需要使用选择正确的继承策略 @Inheritance(策略= InheritanceType) 或者您也可以考虑使用没有自己的数据库表的映射超类。您可以使用@MappedSuperclass注释来注释此类。
此致 Asheesh