JPA中的@MappedSuperclass
说明地址:http://docs.oracle.com/javaee/5/api/javax/persistence/MappedSuperclass.html
用来申明一个超类,继承这个类的子类映射时要映射此类中的字段,可以当做是对entity抽取封装的类。如果子类想重写此类的映射信息,可以使用 AttributeOverride and AssociationOverride annotations
- Example: Concrete class as a mapped superclass
- @MappedSuperclass
- public class Employee {
- @Id
- protected Integer empId;
- @Version
- protected Integer version;
- @ManyToOne @JoinColumn(name="ADDR")
- protected Address address;
- public Integer getEmpId() { ... }
- public void setEmpId(Integer id) { ... }
- public Address getAddress() { ... }
- public void setAddress(Address addr) { ... }
- }
- // Default table is FTEMPLOYEE table
- @Entity
- public class FTEmployee extends Employee {
- // Inherited empId field mapped to FTEMPLOYEE.EMPID
- // Inherited version field mapped to FTEMPLOYEE.VERSION
- // Inherited address field mapped to FTEMPLOYEE.ADDR fk
- // Defaults to FTEMPLOYEE.SALARY
- protected Integer salary;
- public FTEmployee() {}
- public Integer getSalary() { ... }
- public void setSalary(Integer salary) { ... }
- }
- @Entity @Table(name="PT_EMP")
- @AssociationOverride(name="address",
- joincolumns=@JoinColumn(name="ADDR_ID"))
- public class PartTimeEmployee extends Employee {
- // Inherited empId field mapped to PT_EMP.EMPID
- // Inherited version field mapped to PT_EMP.VERSION
- // address field mapping overridden to PT_EMP.ADDR_ID fk
- @Column(name="WAGE")
- protected Float hourlyWage;
- public PartTimeEmployee() {}
- public Float getHourlyWage() { ... }
- public void setHourlyWage(Float wage) { ... }
- }
- Example: Non-entity superclass
- public class Cart {
- // This state is transient
- Integer operationCount;
- public Cart() { operationCount = 0; }
- public Integer getOperationCount() { return operationCount; }
- public void incrementOperationCount() { operationCount++; }
- }
- @Entity
- public class ShoppingCart extends Cart {
- Collection items = new Vector();
- public ShoppingCart() { super(); }
- ...
- @OneToMany
- public Collection getItems() { return items; }
- public void addItem(Item item) {
- items.add(item);
- incrementOperationCount();
- }
- }

JPA中的@MappedSuperclass的更多相关文章
- spring boot JPA中实体类常用注解
spring boot jpa中的注解很多,参数也比较多.没必要全部记住,但是经常查看官方文档也比较麻烦,记录一下一些常用的注解.通过一些具体的例子来帮助记忆. @Entity @Table(name ...
- JPA学习---第九节:JPA中的一对多双向关联与级联操作
一.一对多双向关联与级联操作 1.创建项目,配置文件代码如下: <?xml version="1.0" encoding="UTF-8"?> < ...
- 4、JPA table主键生成策略(在JPA中table策略是首推!!!)
用 table 来生成主键详解 它是在不影响性能情况下,通用性最强的 JPA 主键生成器.这种方法生成主键的策略可以适用于任何数据库,不必担心不同数据库不兼容造成的问题. initialValue不起 ...
- Hibernate JPA 中配置Ehcache二级缓存
在Hibernate3 JPA里配置了一下非分布式环境的二级缓存,效果不错.具体过程如下: 1, 需要引入的jar包 http://ehcache.org/downloads/catalog 下载的包 ...
- 使用JPA中@Query 注解实现update 操作
spring使用jpa进行update操作主要有两种方式: 1.调用保存实体的方法 1)保存一个实体:repository.save(T entity) 2)保存多个实体:repository.sav ...
- Jpa中设置OneToMany插入报异常解决办法
在Jpa中如果设置@OneToMany,但使用的时候,如果没有赋值,会报异常出现,这时只需要实例化一个空数组即可, 但类型一定要对应: 实例如下: newField.setxxxxxList(new ...
- JPA中EntityListeners注解的使用
使用场景 EntityListeners在jpa中使用,如果你是mybatis是不可以用的 它的意义 对实体属性变化的跟踪,它提供了保存前,保存后,更新前,更新后,删除前,删除后等状态,就像是拦截器一 ...
- Spring data JPA中使用Specifications动态构建查询
有时我们在查询某个实体的时候,给定的条件是不固定的,这是我们就需要动态 构建相应的查询语句,在JPA2.0中我们可以通过Criteria接口查询,JPA criteria查询.相比JPQL,其优势是类 ...
- JPA中建立数据库表和实体间映射小结
在JPA中,映射数据库表和实体的时候,需要注意一些细节如下, 实体类要用@Entity的注解: 要用 @Id 来注解一个主键: 如果跟数据库相关联,要用@Table注解相关数据库表: 实体类中字段需要 ...
随机推荐
- crawler spec
使用说明 0.写在前面 1.本程序完成的抓取网页并保存其文件的工作. 2.目前的版本还需将工程文件导入eclipse中运行. 3.加载主类MyCrawler生成可执行文件. 4.程序主界面: 1 准备 ...
- Notes of the scrum meeting(11/1)
meeting time:9:00~10:30p.m.,November 1st,2013 meeting place:20号公寓楼前 attendees: 顾育豪 ...
- 在Visual Studio中快速启动调试Web应用程序
原文:http://blog.csdn.net/effun/article/details/2638535 到2005,Visual Studio在启动调试的功能上进行了一些改善,不过因为只是简单的一 ...
- Query classification; understanding user intent
http://vervedevelopments.com/Blog/query-classification-understanding-user-intent.html What exactly i ...
- JAVA里的String、Timestamp、Date相互转换(转)
转自:http://blog.sina.com.cn/s/blog_6675493d0100lbfl.html Timestamp转化为String: SimpleDateFormat df = ne ...
- Linux安装python 2.7.9
1.下载python wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz 2.解压.编译安装 tar -zxvf Python- ...
- Unity3D脚本中文系列教程(十一)
http://dong2008hong.blog.163.com/blog/static/4696882720140313058768/ BoxCollider 类,继承自Collider 一个盒状的 ...
- Building Plugins for iOS
This page describes Native Code Plugins for the iOS platform. Building an Application with a Native ...
- C/C++框架和库
http://blog.csdn.net/xiaoxiaoyeyaya/article/details/42541419 值得学习的C语言开源项目 - 1. Webbench Webbench是一个在 ...
- HDU 1452 Happy 2004(因子和的积性函数)
题目链接 题意 : 给你一个X,让你求出2004的X次方的所有因子之和,然后对29取余. 思路 : 原来这就是积性函数,点这里这里这里,这里讲得很详细. 在非数论的领域,积性函数指所有对于任何a,b都 ...