Hibernate 5 @Entity 如何 extends 另外一个类
在实际项目设计中,我们可以希望在 JPA 中定义 @Entity 表。
但是在这个 @Entity 类中,我们希望 extends 另外一个类,在另外一个类中我们可以把一些通用的属性设置到里面。
例如:
public class Covid19Current extends DataObject implements java.io.Serializable {
}
那么我们应该在 DataObject 添加什么注解?
需要在 DataObject 中添加 @MappedSuperclass 注解。
可以定义成如下:
@MappedSuperclass
public abstract class DataObject {
}
@MappedSuperclass注解只能标准在类上:@Target({java.lang.annotation.ElementType.TYPE})
标注为@MappedSuperclass的类将不是一个完整的实体类,他将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字段中。
标注为@MappedSuperclass的类不能再标注@Entity或@Table注解,也无需实现序列化接口。
但是如果一个标注为@MappedSuperclass的类继承了另外一个实体类或者另外一个同样标注了@MappedSuperclass的类的话,他将可以使用@AttributeOverride或@AttributeOverrides注解重定义其父类(无论是否是实体类)的属性映射到数据库表中的字段。
比如可以重定义字段名或长度等属性,使用@AttributeOverride中的子属性@Column进行具体的定义。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
springboot + aop的最佳实践,再也不怕双击666
唠唠叨叨 复工不到一个月疯狂的加班中,最近没什么时间写博客更文有点慢,好在做的项目中不全是增删改的业务逻辑,还是有一些比较有意思实用的技术点,所以整理出来分享给大家。和那些搞高端技术的大佬比不了,咱就是个还在一线搬砖的码农。 有没有遇到过这种情况:由于网速等原因,网页响应很慢,提交一次表单后发现服务久久没响应,然后你就疯狂点击提交按钮(12306就经常被这样怒怼),如果做过防重复提交还好,否则那是什么级别的灾难就不好说了。。。 今天主要是用 自定义注解、 AOP、· Guava 包中Cache来生成一种本地锁,来达到的防重复提交效果,整体的实现比较简单,没有什么太大的难度,代码也是比较少,,由于是基于内存的缓存,因此这种实现方式并不适用于分布式服务。旨在给大家介绍一种实现防重复提交的方案,要是有什么说的不对的地方大家温柔一点撕,毕竟人家还是个20出头30郎当岁的孩子。 Guava是什么? guava包是个啥?做过Java的小伙伴应该多少都有所了解,它是google “嫌弃” JAVA自带的类库不好用,自行研发的一套工具包,对JDK工具做了很好的拓展。例如:并发[Concurrency]...
- 下一篇
苹果将推新iPhoneSE:国行或2999元起,目标出货3000万
苹果已做好了发布新款iPhone SE的准备,将于近期发布,而iPhone 12系列则是不同版本分开发布。 日前,有外媒报道称,苹果目前正在准备新款iPhone SE的发售准备,这得益于中国对于疫情的控制速度,才使得富士康工厂能够有条不紊地恢复生产。 据悉,新款2020 iPhone SE将采用和iPhone 11系列相同的A13芯片,其共有三款:白色、黑色、红色,采用与iPhone 8相同的设计,提供4.7英寸屏幕,提供指纹识别功能,移除了3D Touch,增加了Express Card和未来CarKey的支持,同时后置单摄像头,方案可能延续了iPhone 8的1200万像素方案。 此外,新机还会有64GB、128GB和256GB三个版本,其中起步价预计为399美元起步(2805元),对应的国行价格可能是2999元或3299元。 另外,苹果产业链表示,苹果并没有因为疫情而调低新款iPhone SE出货量目标,预计全年依然是3000万台以上,其将扛起今年iPhone整体出货量超过2亿台的重担,而新款iPhone SE将成为苹果2020年重要的成长驱动。 但一些业内人士认为,虽然苹果前期...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- Red5直播服务器,属于Java语言的直播服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2更换Tomcat为Jetty,小型站点的福音