`

Hibernate:类继承的实现方式(三)--鉴别器与内连接相结合

阅读更多
当子类中有的有很多自己特有的属性,而部分子类有较少的自己的属性。这时候应该将两种方式结合起来。

domain对象和测试代码同(一)

映射文件如下:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itcast.hibernate.inherit3">

	<class name="Employee" table="employee" discriminator-value="0">
		<id name="id" unsaved-value="-1">
			<generator class="native" />
		</id>
		<discriminator column="type" type="string"/>
		<property name="name"/>

		<subclass name="Skiller" discriminator-value="1">
			<property name="skill"/>
		</subclass>
		
		<subclass name="Driver" discriminator-value="2">
			<join table="dirver">
				<key column="d_id"/>
				<property name="driverYears"/>
			</join>
		</subclass>
		
	</class>
</hibernate-mapping>



执行的sql语句:

Hibernate: insert into employee (name, type) values (?, '0')
Hibernate: insert into employee (name, skill, type) values (?, ?, '1')
Hibernate: insert into employee (name, type) values (?, '2')
Hibernate: insert into dirver (driverYears, d_id) values (?, ?)



通过sql语句可以看到,hibernate自动检测到插入的对象的存放格式,就是利用映射文件中的鉴别器discriminator的值,而且插入时会自动检测到应该插入的鉴别器的值



分享到:
评论

相关推荐

    基于IDEA的SSH项目之五:集成Hibernate----lib包

    总之,"基于IDEA的SSH项目之五:集成Hibernate----lib包"这一环节主要是关于如何在IDEA中设置Hibernate依赖,配置相关文件,并与其他SSH组件协同工作,以实现高效的数据库操作。这个过程对于理解和实践Java Web开发...

    HIBERNATE:Hibernate 学习一--注解方式自动建表

    在Hibernate中,注解用于将Java类与数据库表关联,以及将类的属性与表的列对应起来,从而实现了对象关系映射(ORM)。 1. **实体类注解**: - `@Entity`:标记一个Java类为数据库中的一个实体表,相当于传统的...

    DmDialect-for-hibernate4.0.zip

    Hibernate是一个强大的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库,将Java对象与数据库表之间的映射关系自动化。Dialect在Hibernate中起着至关重要的作用,它定义了特定数据库的SQL语法、...

    hibernate-jpa-2.1-api-1.0.0.final.jar.zip

    `hibernate-jpa-2.1-api-1.0.0.final.jar`是Hibernate对JPA 2.1规范的实现库,它使得开发者能够使用Hibernate的高效功能同时遵循JPA规范。 **1. Hibernate与JPA的关系** Hibernate最初作为一个独立的ORM框架,后来...

    hibernate-core-5.2.12.Final-sources

    java 三大框架之一hibernate-core-5.2.12.Final-sources源代码,hibernate是连接数据库提高开发效率的框架,桌面应用程序和web项目都可以用

    hibernate-jpa-2.0-api-1.0.1.Final-sources.jar

    hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码

    spring3.2+ Hibernate 3.5.4-Final+struts2 整合开发jar包

    标题中的"spring3.2+ Hibernate 3.5.4-Final+struts2 整合开发jar包"指的是一个软件开发项目中采用的技术栈,它涵盖了Spring框架的3.2版本、Hibernate ORM框架的3.5.4-Final版本以及Struts2 Web应用框架的2.3.20版本...

    hibernate-jpa-2.0-api-1.0.1.Final.jar

    hibernate-jpa-2.0-api-1.0.1.Final.jar

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

    《深入理解Hibernate配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...

    HibernateTools-3.2.4.Beta1-R200810311334.zip

    1. **代码生成器**:能够自动生成基于Hibernate的实体类、DAO层和配置文件,减少了手动编写大量重复代码的工作量,提高了开发效率。 2. **逆向工程**:可以从现有的数据库中生成Hibernate映射文件和Java类,使已有的...

    Hibernate-Extension Middlegen-Hibernate

    1. **安装配置**:首先,你需要下载并配置Middlegen-Hibernate的相关依赖库,如题目中提到的`hibernate-extensions-2.1.3`、`apache-ant-1.8.4`、`Middlegen-Hibernate-r5`和`hibernate-2.1`。Apache Ant是Java项目...

    hibernate-jpa-2.1-api-1.0.0.final-sources.jar.zip

    本篇文章将重点围绕“hibernate-jpa-2.1-api-1.0.0.final-sources.jar.zip”这一压缩包,深入解析Hibernate对JPA 2.1 API的实现,以期帮助读者深入理解其内部机制。 JPA(Java Persistence API)是Java平台上的一个...

    hibernate4.1中文api

    - **表每个子类:使用一个鉴别器**: 结合多个策略。 - **每个类层次混合表与表每个子类**: 混合使用不同策略。 - **每个具体类一张表**: 每个具体子类使用单独的表。 - **表使用隐式多态实现每个具体类**: 通过...

    hibernate-jpa-2.0-api-1.0.1.Final-sources

    8. **持久化单元配置**:persistence.xml文件是定义持久化单元的主要配置文件,它包含了连接数据库的相关信息,如数据源、实体类的定义、属性设置等。 9. **懒加载与级联操作**:源码中会揭示Hibernate如何实现懒...

    传智播客-hibernate框架开发视频第day01-day04资料

    【传智播客-hibernate框架开发视频第day01-day04资料】 在这个课程中,传智播客为我们深入讲解了...为了充分利用这些资源,建议按照顺序逐步学习,同时动手实践,理论与实践相结合,才能真正掌握Hibernate框架的精髓。

    hibernate-jpa-2.0-api-1.0.0-CR-1.jar

    java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil 或javax/persistence/entitylistener问题

    Hibernate---继承

    Hibernate---继承 Hibernate---继承

    hibernate-release-4.1.4

    此版本包含了Hibernate的核心库和其他相关组件,使得开发者能够将Java类与数据库表进行映射,进而实现数据的持久化。 【描述】中的"hibernate的jar包"指的是Hibernate框架的运行库文件,这些JAR文件包含了Hibernate...

    hibernate-core-4.2.0.Final-sources.jar

    hibernate-core-4.2.0.Final-sources.jar hibernate的源代码

    hibernate-distribution-3.3.2.GA-dist.zip

    通过提供一套API,Hibernate 可以自动处理对象的持久化,使得Java对象与数据库表之间建立映射关系,实现了数据的透明访问。 二、Hibernate 3.3.2 GA 版本特点 1. 性能优化:3.3.2 GA 版本在性能上进行了提升,包括...

Global site tag (gtag.js) - Google Analytics