为什么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. IT生存环境压力让人抑郁 .
  2. jvm性能调优 - 20G1垃圾回收器应该如何设置参数
  3. webpack入门(四)——webpack loader 和plugin
  4. h2 java tcpip_windows下创建h2集群,及java集成详细步骤
  5. 一代不如一代?别轻易给年轻人贴标签
  6. BZOJ4245 [ONTAK2015]OR-XOR 【贪心】
  7. Nacos源码NacosNamingService
  8. 关于xfce中桌面没法显示回收站以及thunar中无法进行卷管理的解决办法
  9. ac自动机 匹配最长前缀_傻傻分不清吗?——Trie Tree,字典树、前缀树概述
  10. t580 thinkpad_ThinkPad T580性能如何?联想ThinkPad T580商务本详细评测
  11. python刷网课程序,基于python和selenium的刷网课的代码
  12. react native 自定义Image实现预加载图片及错误之后图片显示
  13. 阿里 P9 耗时 28 天,总结历年亿级活动高并发系统设计手册
  14. C语言例题5: 三角形周长面积
  15. html5手机密码修改,HTML5 Canvas简简单单实现手机九宫格手势密码解锁
  16. DDD领域驱动设计(DP、Entity介绍;DDD实现流程;DDD聚合Aggregate;限界上下文(Bounded Context))
  17. Zabbix监控系统详解
  18. .pfx格式和.Cer格式的区别
  19. 2023年全国最新会计专业技术资格精选真题及答案10
  20. 思科交换机基本配置实例讲解《一》

热门文章

  1. OpenGL学习笔记(14)像素操作
  2. IK Multimedia MODO BASS for mac(低音效果虚拟乐器)
  3. MAC系统如何连接Windows共享文件?MAC系统连接Win共享文件的方法
  4. Dockerfile 学习:Docker Alpine PHP 安装扩展
  5. iOS获取手机卡IMSI信息
  6. 就地升级Lync Server 到Skype for Business Server
  7. 11. SpringMVC拦截器(资源和权限管理)
  8. 第3/24周 区_SQL Server中管理空间的基本单位
  9. 数组/指针,字符数组/字符串/指向字符的指针
  10. 7/6-7/12 上海之行