一个主表,其他的表每个都有自己的表来装填自己特有的部分,共同的部分就放在主表中。

 

package com.bjsxt.hibernate;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;

@Entity
@Inheritance(strategy=InheritanceType.JOINED)

public class Person {
    private int id;
    private String name;
   
    @Id
    @GeneratedValue
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

 

 

package com.bjsxt.hibernate;

import javax.persistence.Entity;

@Entity
public class Student extends Person {
   
    private int score;

    public int getScore() {
        return score;
    } //Person p = Person(load(1));

    public void setScore(int score) {
        this.score = score;
    }
   
}

 

package com.bjsxt.hibernate;

import javax.persistence.Entity;

@Entity
public class Teacher extends Person {
    private String title;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

   
}

 

测试类:

package com.bjsxt.hibernate;

import java.util.Map;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class HibernateORMappingTest {
    private static SessionFactory sessionFactory;
   
    @BeforeClass
    public static void beforeClass() {
        new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
        sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
    }
    @AfterClass
    public static void afterClass() {
        sessionFactory.close();
    }
   
    @Test
    public void testSave() {
        Student s = new Student();
        s.setName("s1");
        s.setScore(80);
        Teacher t = new Teacher();
        t.setName("t1");
        t.setTitle("中级");
       
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        session.save(s);
        session.save(t);
        session.getTransaction().commit();
        session.close();
    }
    @Test
    public void testLoad() {
        testSave();
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        Student s = (Student)session.load(Student.class, 1);
        System.out.println(s.getScore());
        Person p = (Person)session.load(Person.class, 2);
        System.out.println(p.getName());
        session.getTransaction().commit();
        session.close();
       
    }
   
    @Test
    public void testSchemaExport() {
        new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
    }
   
   
    public static void main(String[] args) {
        beforeClass();
    }
}

最新文章

  1. asterisk简单命令
  2. 辗转相除法求最大公约数,非goto
  3. 使用"关键词"来整理自己的知识库
  4. eclipse tomcat 集成
  5. C++ REST SDK的基本用法
  6. 虚拟机下CentOS找不到网卡eth0的解决方法
  7. 图片放大方法、、菜单栏的位置随滚轮移动固定方法、、<a></a>去外层虚线方法:a:focus { outline:none; -moz-outline:none;};
  8. 安装CDH4 (Cloudera Distribution Hadoop)步骤
  9. Java 装箱 拆箱
  10. GoldenGate 基础架构
  11. linux 查看用户所在组(groups指令的使用) 含实例
  12. php empty和isset的区别
  13. Centos6.5 Qt4开发 Cannot find -lGL QApplication not file or dir
  14. 使用Charles Proxy提升iOS开发效率
  15. 找出一个文件夹下后缀名为.jpg的文件
  16. mysql登录密码相关
  17. BaseServlet 继承 httpServlet
  18. 为什么Java匿名内部类访问的外部局部变量或参数需要被final修饰
  19. 四,memcached的机制
  20. Handler运行机制

热门文章

  1. gaggd
  2. JavaWEB开发框架:Shiro
  3. Unity中Instantiate物体失效问题
  4. 洛谷 P2415 集合求和【数学公式/模拟】
  5. POJ 2115 C Looooops(Exgcd)
  6. Oracle常见故障问题
  7. iOS数据库操作(使用FMDB)
  8. Http报头Accept与Content-Type的区别(转)
  9. 三星s3c24xx平台GPIO操作详解
  10. CSS:超出省略三部曲