当子类中有的有很多自己特有的属性,而部分子类有较少的自己的属性。这时候应该将两种方式结合起来。
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中设置Hibernate依赖,配置相关文件,并与其他SSH组件协同工作,以实现高效的数据库操作。这个过程对于理解和实践Java Web开发...
在Hibernate中,注解用于将Java类与数据库表关联,以及将类的属性与表的列对应起来,从而实现了对象关系映射(ORM)。 1. **实体类注解**: - `@Entity`:标记一个Java类为数据库中的一个实体表,相当于传统的...
Hibernate是一个强大的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库,将Java对象与数据库表之间的映射关系自动化。Dialect在Hibernate中起着至关重要的作用,它定义了特定数据库的SQL语法、...
`hibernate-jpa-2.1-api-1.0.0.final.jar`是Hibernate对JPA 2.1规范的实现库,它使得开发者能够使用Hibernate的高效功能同时遵循JPA规范。 **1. Hibernate与JPA的关系** Hibernate最初作为一个独立的ORM框架,后来...
java 三大框架之一hibernate-core-5.2.12.Final-sources源代码,hibernate是连接数据库提高开发效率的框架,桌面应用程序和web项目都可以用
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码
标题中的"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配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...
1. **代码生成器**:能够自动生成基于Hibernate的实体类、DAO层和配置文件,减少了手动编写大量重复代码的工作量,提高了开发效率。 2. **逆向工程**:可以从现有的数据库中生成Hibernate映射文件和Java类,使已有的...
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的实现,以期帮助读者深入理解其内部机制。 JPA(Java Persistence API)是Java平台上的一个...
- **表每个子类:使用一个鉴别器**: 结合多个策略。 - **每个类层次混合表与表每个子类**: 混合使用不同策略。 - **每个具体类一张表**: 每个具体子类使用单独的表。 - **表使用隐式多态实现每个具体类**: 通过...
8. **持久化单元配置**:persistence.xml文件是定义持久化单元的主要配置文件,它包含了连接数据库的相关信息,如数据源、实体类的定义、属性设置等。 9. **懒加载与级联操作**:源码中会揭示Hibernate如何实现懒...
【传智播客-hibernate框架开发视频第day01-day04资料】 在这个课程中,传智播客为我们深入讲解了...为了充分利用这些资源,建议按照顺序逐步学习,同时动手实践,理论与实践相结合,才能真正掌握Hibernate框架的精髓。
java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil 或javax/persistence/entitylistener问题
Hibernate---继承 Hibernate---继承
此版本包含了Hibernate的核心库和其他相关组件,使得开发者能够将Java类与数据库表进行映射,进而实现数据的持久化。 【描述】中的"hibernate的jar包"指的是Hibernate框架的运行库文件,这些JAR文件包含了Hibernate...
hibernate-core-4.2.0.Final-sources.jar hibernate的源代码
通过提供一套API,Hibernate 可以自动处理对象的持久化,使得Java对象与数据库表之间建立映射关系,实现了数据的透明访问。 二、Hibernate 3.3.2 GA 版本特点 1. 性能优化:3.3.2 GA 版本在性能上进行了提升,包括...