将继承链中的各个类映射到数据库中的一个单独的表中
domain对象和测试代码同(一)
可以看到在关系模型中比较合理:Employee表中没有空字段,但是查询效率肯定会受影响
映射文件如下:
<?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.inherit2">
<class name="Employee" table="employee" >
<id name="id" unsaved-value="-1">
<generator class="native" />
</id>
<property name="name"/>
<joined-subclass name="Skiller" table="skiller">
<key column="s_id"/>
<property name="skill"/>
</joined-subclass>
<joined-subclass name="Driver" table="dirver">
<key column="d_id"/>
<property name="driverYears"/>
</joined-subclass>
</class>
</hibernate-mapping>
执行的sql语句如下:
Hibernate: insert into employee (name) values (?)
Hibernate: insert into employee (name) values (?)
Hibernate: insert into skiller (skill, s_id) values (?, ?)
Hibernate: insert into employee (name) values (?)
Hibernate: insert into dirver (driverYears, d_id) values (?, ?)
分享到:
相关推荐
- `@Entity`:标记一个Java类为数据库中的一个实体表,相当于传统的Hibernate配置文件中的映射文件。 - `@Table`:用于指定实体类对应的数据库表名,可以设置其他如schema、catalog等属性。 - `@Id`:标识类的...
在Hibernate中,每个数据库表对应一个Java实体类。实体类需要使用注解或XML配置文件来指定与数据库表的映射关系,包括主键、属性映射等。例如,使用`@Entity`注解标识实体类,`@Table`注解指定表名,`@Id`标识主键...
Hibernate最初作为一个独立的ORM框架,后来成为了JPA规范的参考实现之一。JPA提供了一套标准API,允许开发者在不依赖特定ORM工具的情况下编写数据库操作代码。而Hibernate通过实现JPA规范,使得开发者可以在享受...
国产达梦数据库hibernate方言包
总结来说,这个压缩包提供了一套完整的开发环境,包括Spring、Hibernate和Struts2的集成,以及它们各自所需的依赖,如数据库连接、模板引擎和Java服务器端技术,便于开发者快速搭建和运行一个基于Java的三层架构Web...
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码
hibernate-jpa-2.0-api-1.0.1.Final.jar
《HibernateTools ...总的来说,HibernateTools 3.2.4 Beta1是一个强大的工具集,它在提升开发效率的同时,也降低了数据库管理和ORM的复杂性。对于任何使用Hibernate或者JPA的Java开发者来说,都是不可或缺的助手。
JPA(Java Persistence API)是Java平台上的一个标准,用于处理Java对象与关系数据库之间的映射。它定义了一套规范,使得开发人员可以使用面向对象的方式进行持久化操作,而无需关心底层的SQL语法。JPA 2.1版本引入...
1. **安装配置**:首先,你需要下载并配置Middlegen-Hibernate的相关依赖库,如题目中提到的`hibernate-extensions-2.1.3`、`apache-ant-1.8.4`、`Middlegen-Hibernate-r5`和`hibernate-2.1`。Apache Ant是Java项目...
在“每个子类一张表”策略中,系统会为每个子类创建一个独立的表,主表通常存储基类的属性,而子类的特有属性则存放在各自对应的表中。这样做的好处是可以清晰地将不同类的属性分离,避免了单一表的复杂性,但可能会...
例如,`<class>`元素表示一个Java类,它的`name`属性是类的全限定名,`table`属性指定对应的数据库表。`<id>`元素定义主键,`<property>`元素则映射类的属性到表的列。此外,`hibernate-mapping-3.0.dtd`还支持更...
Hibernate 是一个开源的 ORM 解决方案,它允许开发者使用面向对象的编程方式来操作关系型数据库,避免了传统的 JDBC 编程带来的复杂性。通过提供一套API,Hibernate 可以自动处理对象的持久化,使得Java对象与数据库...
java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil 或javax/persistence/entitylistener问题
hibernate-core-4.2.0.Final-sources.jar hibernate的源代码
总之,单一表继承策略是一种简单且直观的Hibernate继承映射方式,适合类继承层次结构不深且子类数量较少的情况。但在大型项目或复杂的类继承结构中,可能需要考虑其他策略,如`JOINED`或`TABLE_PER_CLASS`。理解并...
【标题】"hibernate-release-4.1.4" 是Hibernate框架的一个版本发布,具体为4.1.4.Final。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发人员在处理数据库时使用面向对象的概念,极大地简化了数据库...
- **实现继承(Inheritance)**: 支持继承的实现方式。 - **实现equals()和hashCode()**: 重写equals()和hashCode()方法以支持正确的对象比较。 - **动态模型(Dynamic models)**: 动态创建模型。 - **元组片断映射...
- 实体类和注解:创建实体类并使用Hibernate注解进行字段映射。 - Session工厂与Session:理解Session工厂的概念,以及Session在数据操作中的角色。 2. **Day02:持久化操作** - CRUD操作:掌握如何通过...
Hibernate---继承 Hibernate---继承