JPA基础(十四):JPA中的继承映射关系
2011-12-03 19:02
381 查看
Employee.java:(基类)
其中@Inheritance(strategy=InheritanceType.SINGLE_TABLE)//选择继承策略 可以选择多种策略,如下图所示:
JOINED:继承的子类各自生成一张表
SINGLE_TABLE:只生成一张表,用一个字段当鉴别器
TABLE_PER_CLASS:每个类都生产一张表,包括基类
Skiller.java(继承自Employee.java)
Sales.java(继承自Employee.java)
测试:
打开数据库:
@Entity @Inheritance(strategy=InheritanceType.SINGLE_TABLE)//选择继承策略 @DiscriminatorColumn(name="type")//配置鉴别器 @DiscriminatorValue("0")//设置鉴别器值 public class Employee { @Id @GeneratedValue private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
其中@Inheritance(strategy=InheritanceType.SINGLE_TABLE)//选择继承策略 可以选择多种策略,如下图所示:
JOINED:继承的子类各自生成一张表
SINGLE_TABLE:只生成一张表,用一个字段当鉴别器
TABLE_PER_CLASS:每个类都生产一张表,包括基类
Skiller.java(继承自Employee.java)
@Entity @DiscriminatorValue("1") public class Skiller extends Employee { private String skill; public String getSkill() { return skill; } public void setSkill(String skill) { this.skill = skill; } }
Sales.java(继承自Employee.java)
@Entity @DiscriminatorValue("2") public class Sales extends Employee { private String sell; public String getSell() { return sell; } public void setSell(String sell) { this.sell = sell; } }
测试:
@Test public void save(){ EntityManagerFactory factory=Persistence.createEntityManagerFactory("sample"); EntityManager em=factory.createEntityManager(); em.getTransaction().begin(); Employee p1=new Employee(); p1.setName("Jim"); Skiller p2=new Skiller(); p2.setName("Hanson"); p2.setSkill("skill"); Sales p3=new Sales(); p3.setName("Brian"); p3.setSell("sale"); em.persist(p1); em.persist(p2); em.persist(p3); em.getTransaction().commit(); em.close(); factory.close(); }
打开数据库:
相关文章推荐
- Hibernate/JPA中的继承映射 实体extends的关系(每个子类独立一个表)
- Hibernate之jpa实体映射的三种继承关系
- entityframework学习笔记--008-实体数据建模基础之继承关系映射TPH
- 【SSH 基础】Hibernate继承关系映射
- Hibernate基础------》映射关系---》继承映射-》join_subclass映射(每个类对应一张表)
- Hibernate之jpa实体映射的三种继承关系
- Hibernate基础------》关系映射---》继承映射-》简单映射
- entityframework学习笔记--007-实体数据建模基础之继承关系映射TPT
- Hibernate之jpa实体映射的三种继承关系
- 在JPA中,实体继承关系的映射策略共有三种:单表继承策略(table per class)、Joined策略(table per subclass)和Table_PER_Class策略。
- Hibernate/JPA中的继承映射 实体extends的关系
- JPA实体继承关系的映射策略
- Hibernate基础------》关系映射---》继承映射-》所有类映射到一张表中(类融合映射或者鉴别器映射)
- Hibernate之 对象/关系数据库映射基础(Basic O/R Mapping)
- Hibernate逍遥游记-第10章 映射继承关系-002继承关系树中的根类对应一个表(discriminator、subclass)
- 对Jpa中Entity关系映射中mappedBy的理解
- SSH——Hibernate继承关系映射详解(配置+实例+总结)
- JPA的关系映射和JPQL查询
- hibernate映射继承关系一
- 【SSH 基础】浅谈Hibernate关系映射(3)