在创建了几个实体之后,你可能会注意到它们会重复地包含一些相同的属性。例如,你可能意识到所有的实体都有ID、创建日期、最后修改日期和Version属性。与每次创建实体时都重新定义这些实体相反,我们可以创建一个映射父类,只定义实体一次。
  一个映射父类与普通实体非常相似。它不包含Table注解,而是使用javx注解替代了Entity注解,但我们可以像使用普通实体一样映射其中的任意属性。映射父类中的属性总是映射到最终继承他的Entity类的表上。在继承层次中也不限制必须使用单个映射父类。我们可以定义许多映射父类。我们可以定义许多映射父类,并使用一个实体继承所有作为它的祖先的映射父类的属性。
  一个映射父类或者实体可以通过覆盖父类方法覆盖它继承的属性的列映射,并重新定义Column注解。不过,如果通过字段访问而不是方法访问,那么这种方式是无法工作的,在这种情况下,我们需要使用AttributeOverride标注类、在name特性中指定属性名,并提供新的Column定义。我们不能覆盖Basic、Lob这样的注解和其他的JPA类型注解。如果一个映射父类定义了一个Trasient属性,那么它的子类不能覆盖该属性使它变为非Transient的。

关于TeamDoc软件:

TeamDoc是基于服务器/客户端架构的轻量级文件管理软件。TeamDoc将文件集中加密存储在您单位自己的服务器中,员工使用TeamDoc客户端访问服务器,从而获得与自己权限相关的权限:登入后与“我的电脑”界面类似,可以看到自己该看的文件,编辑自己能编辑的文档,对于能看到的文件,还可以细分文档权限,进而做到能看不能拷,能看不能截屏等功能,多种权限灵活设置,在线协同编辑、全文搜索、日志与版本追踪,快速构建企业文档库。告别假大空,我们提供值得您选择的、易用的、可用的文档管理软件。现在就访问TeamDoc首页

TeamDoc软件界面(点击可放大)

版权所有:南京网亚计算机有限公司,本文链接地址: 定义公共属性的抽象实体