为什么80%的码农都做不了架构师?>>>   

1.背景介绍:比如技术人员(Skiller)、销售人员(Seller)继承普通人员(Person)

2.jar包引入,同前面所说

3.实体bean具体代码:

(1)Person.java

package com.sinoi.domain;public class Person {private int id;private String name;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;}}

(2)Skiller.java

package com.sinoi.domain;public class Skiller extends Person {private String skill;public String getSkill() {return skill;}public void setSkill(String skill) {this.skill = skill;}}

(3) Seller.java

package com.sinoi.domain;public class Seller extends Person {private String sell;public String getSell() {return sell;}public void setSell(String sell) {this.sell = sell;}}

4.配置文件

(1) hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- Database connection settings --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://127.0.0.1:3306/hibernate_db</property><property name="connection.username">root</property><property name="connection.password">beanGou</property><!-- JDBC connection pool (use the built-in) --><property name="connection.pool_size">1</property><!-- SQL dialect --><property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- Enable Hibernate's automatic session context management --><property name="current_session_context_class">thread</property><!-- Disable the second-level cache  --><property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property><property name="format_sql">true</property><!-- Echo all executed SQL to stdout --><property name="show_sql">true</property><!-- Drop and re-create the database schema on startup --><property name="hbm2ddl.auto">update</property><mapping resource="com/sinoi/domain/Person.hbm.xml"/></session-factory></hibernate-configuration>

(2)Person.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.sinoi.domain"><class name="Person" table="hib_extends_person" discriminator-value="0"><id name="id" column="PERSON_ID"><generator class="native"/></id><!-- 注意: 这句代码所放的位置很重要,放在其他位置很可能会出错! --><discriminator column="type" type="string"/><property name="name"/><subclass name="Skiller" discriminator-value="1"><property name="skill"></property></subclass><subclass name="Seller" discriminator-value="2"><property name="sell"></property></subclass></class></hibernate-mapping>

注意: 这个配置文件里面的 注意”

5.测试

package unit.test;import org.hibernate.Session;import com.sinoi.domain.Person;
import com.sinoi.domain.Seller;
import com.sinoi.domain.Skiller;
import com.sinoi.util.HibernateUtil;public class Test {@org.junit.Testpublic void save() {Session session = HibernateUtil.getSession();session.getTransaction().begin();Skiller skiller = new Skiller();skiller.setName("nameSkill");skiller.setSkill("program");Seller seller = new Seller();seller.setName("seller");seller.setSell("just sell shoes");Person person = new Person();person.setName("normal");session.persist(seller);session.persist(person);session.persist(skiller);session.getTransaction().commit();}
}

运行该该单元测试,即可看出效果!

转载于:https://my.oschina.net/beanGo/blog/170583

hibernate(五)之继承关系相关推荐

  1. 代码重构(五):继承关系重构规则

    陆陆续续的发表了多篇关于重构的文章了,还是那句话,重构是一个项目迭代开发中必不可少的一个阶段.其实重构伴随着你的项目的整个阶段.在前几篇关于重构的文章中我们谈到了函数的重构.类的重构.数据的重构以及条 ...

  2. c++面向对象高级编程 学习十五 组合继承关系下的构造和析构

    文章目录 继承关系 组合关系 继承和组合 继承关系 构造由内而外,析构由外而内,内即是父类 组合关系 A拥有B, 构造由内而外,析构由外而内,内即是B 继承和组合 构造和析构顺序如图:

  3. hibernate注解映射继承关系

    为什么80%的码农都做不了架构师?>>>    数据库表 用户表(User) id username password 客户表(Customer),客户表id引用用户表id id p ...

  4. hibernate继承关系映射方法(一)--共享一张表

    对于如下关系: Person.java package com.hust.PO;public class Person {private Integer id;private String name; ...

  5. hibernate 表关系映射详解之继承关系

    举例:亚马逊的网上商城可以卖很多东西,比如说图书,电器,水果等等,那么我们以面向对象的理念去抽象一个商品类,他具有商品的共有属性,比如说上架时间,当前         价格,优惠价格等待,商品可以继承 ...

  6. Hibernate学习(3) (继承映射,配置文件和注解版)

    这篇blog准备写怎样在Hibernate中反应内存对象之间的继承关系.我们知道,内存对象之间是可以有继承关系的,但是在数据库中,我们继承神马的都是浮云,不存在的.那么怎么办呢?Hibernate提供 ...

  7. Hibernate中的Entity类之间的继承关系之一MappedSuperclass

    在hibernate中,Entity类可以继承Entity类或非Entity类.但是,关系数据库表之间不存在继承的关系.那么在Entity类之间的继承关系,在数据库表中如何表示呢? Hibernate ...

  8. hibernate继承关系映射方法(三)--每个具体类一张表TPC

    TPC:所谓是"每个具体类一张表(table per concrete class)"的意思是:使继承体系中每一个子类都对应数据库中的一张表.每一个子类对应的数据库表都包含了父类的 ...

  9. hibernate继承关系映射关系方法(二)--每个子类一张表

    TPS:所谓"每个子类一张表(Table Per Subclass)":父类一张表,每个子类一张表,父类的表保存公共有信息,子类的表只保存自己特有的信息 这种策略是使用<jo ...

  10. java继承 映射_hibernate继承关系映射和java反射机制的运用

    转:http://blog.csdn.net/derpvailzhangfan/article/details/1957946 ,感谢博主分享 Notes:hibernate元数据的运用:uuid的概 ...

最新文章

  1. AJAX学习基础:简单介绍数据岛使用方法
  2. python PILLOW
  3. 恒位油杯故障原因_厂家详解干式真空泵故障分析与保养办法
  4. 吴恩达深度学习课程的漫画版来了!(漫画、视频、笔记都可以下载了!)
  5. nginx 源码学习笔记(十八)—— ngx_add_inherited_sockets 继承的sockets
  6. React Antd中样式的修改
  7. Arduino 各种模块篇 DHT11 温度湿度 数字模块 单总线
  8. 研发管理三部曲——贰 · 研发管理应该干什么
  9. php中用microtime()函数来测试代码运行时间
  10. Python用户交互以及数据类型
  11. 纳德拉:Excel是微软的最佳象征 难以想象没有它的世界
  12. 安装时间大于30秒_高送转第一股秒板,封单金额近百亿!最新高送转潜力股名单曝光...
  13. 光纤跳线接口_一篇文章读懂光纤接头、尾纤、耦合器、终端盒的作用与接法!...
  14. NVIDIA控制面板打不开
  15. 云在脚下 三大云存储方案对比与选型指导
  16. 批量为Word2010尾注加方括号[]的方法
  17. excel之countifs函数
  18. 【SDCC讲师专访】全栈工匠老曹:如何去认识全栈架构师?
  19. 从视网膜到视皮层——视觉系统知多少
  20. anaconda is not fount

热门文章

  1. 【OpenCV入门指南】第七篇 线段检测与圆检测
  2. window操作大全
  3. Black Salt Audio All Plug-Ins Mac 实用音频压缩插件套装
  4. 巧用Automator,实现一个鼠标右键转化图像格式的功能
  5. 全新版本的Tidy Up 5 Mac最新版!重复文件查找和磁盘清理工具
  6. 剪映专业版 1.0.3中文修复版(支持M1芯片、适配Big Sur)
  7. 按钮点击触发的事件只生效一次
  8. 如何用Camtasia为“微课”视频添加光标效果?
  9. sqlserver操作符篇 优化
  10. 互联网盈利模式研习笔记之一:流量变现