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注解相关数据库表: 实体类中字段需要 ...
随机推荐
- SAP如何使用关于序列号的表
- android studio 突然出现Gradle project sync failed 错误
出现: 之前还是好好的,突然就出现Gradle project sync failed 错误,网上原因可能是工具的问题. 解决办法: 重新打开android studio就好了.不知道大家还有其他的 ...
- 【HDOJ】【3709】Balanced Bumber
数位DP 题解:http://www.cnblogs.com/algorithms/archive/2012/09/02/2667637.html dfs的地方没太看懂……(也就那里是重点吧喂!)挖个 ...
- Matlab中cell2mat的使用
binIndices是1*50的cell,每个cell是的1*n(n不定),那么cell2mat(binIndices)得到的是1*sum(cellfun(@length,binIndices))的行 ...
- 如何将jsp中<input>设为只读
将一个input变为只读,可以使用 readonly 属性 和 disabled 属性. 用disabled 属性时,文字显示为灰色. 下面的两种方法都是可以的: <input id =&q ...
- (二)、SSL证书
从第一部分HTTPS原理中,我们可以了解到HTTPS核心的一个部分是数据传输之前的握手,握手过程中确定了数据加密的密码.在握手过程中,网站会向浏览器发送SSL证书,SSL证书和我们日常用的身份证类似, ...
- selenium2 安装、简单使用及浏览器启动问题解决汇总
一.selenium2 安装 1.安装jdk并配置环境变量 jdk需要1.6版本及以上的,这个从网上下载就可以,环境变量的配置前边的随笔整理过就不多说了. 2.安装Firefox,Selenium I ...
- http://www.yihaomen.com/article/java/302.htm
http://www.yihaomen.com/article/java/302.htm
- lintcode :二叉树的最大深度
题目: 二叉树的最大深度 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的距离. 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最大深度为3. 解 ...
- Failed to execute goal.....webxml attribute is required...
maven在打包项目的时候报错 Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-wa ...