组件是针对同一张表中的字段进行映射,作用是将字段多的一张表分成多个实体类来表示。
如:name与user
user表中有first_name及last_name。在实体类中,自定义一个Name类来表示first_name与last_name;
Name实体类:
package cn.framelife.mvc.entity;
public class Name {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
User实体类:
package cn.framelife.mvc.entity;
import java.io.Serializable;
public class User implements Serializable {
private Integer id;
private Name name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
}
User.hbm.xml:
<hibernate-mapping>
<class name="cn.framelife.hibernate.entity.User" table="user" catalog="hibernate">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<component name="name" class="cn.framelife.hibernate.entity.Name">
<property name="firstName" column="first_name"></property>
<property name="lastName" column="last_name"></property>
</component>
</class>
</hibernate-mapping>
增加操作:
tx = session.beginTransaction();
Name name = new Name();
name.setFirstName("111");
name.setLastName("2222");
User user = new User();
user.setName(name);
session.save(user);
tx.commit();
分享到:
相关推荐
第9章 通过Hibernate操纵对象(下) 9.1 与触发器协同工作 9.2 利用拦截器(Interceptor)生成审计日志 9.3 Hibernate的事件处理机制 9.4 批量处理数据 9.4.1 通过Session来进行批量操作 9.4.2 通过...
第9章 通过Hibernate操纵对象(下) 9.1 与触发器协同工作 9.2 利用拦截器(Interceptor)生成审计日志 9.3 Hibernate的事件处理机制 9.4 批量处理数据 9.4.1 通过Session来进行批量操作 9.4.2 通过...
第9章 通过Hibernate操纵对象(下) 9.1 与触发器协同工作 9.2 利用拦截器(Interceptor)生成审计日志 9.3 Hibernate的事件处理机制 9.4 批量处理数据 9.4.1 通过Session来进行批量操作 9.4.2 通过...
第9章 通过Hibernate操纵对象(下) 9.1 与触发器协同工作 9.2 利用拦截器(Interceptor)生成审计日志 9.3 Hibernate的事件处理机制 9.4 批量处理数据 9.4.1 通过Session来进行批量操作 9.4.2 通过...
第9章 使用对象 9.1 持久化生命周期 9.1.1 对象状态 9.1.2 持久化上下文 9.2 对象同一性和等同性 9.2.1 引入对话 9.2.2 对象同一性的范围 9.2.3 脱管对象的同一性 9.2.4 扩展持久...
##### 1.2 第二部分 — 关联映射 此章节深入探讨了 Hibernate 中对象之间的关联映射。 - **1.2.1 映射 Person 类**:通过映射一个具体的 `Person` 类来展示一对一、一对多等关联类型的实现。 - **1.2.2 单向 Set-...
在本课程中,我们主要关注的是计算机组织与体系结构(CoA)的第四章内容,尤其是与缓存(Cache)相关的部分。缓存是提高计算机系统性能的关键组件,它通过存储最近频繁访问的数据来减少主内存与CPU之间的数据传输...
第六章是关于参数映射和结果映射,这涉及到如何将 Java 对象与数据库记录进行对应,包括基本类型、复杂类型的映射,以及关联关系的处理。 第七章和第八章会讲解缓存机制和事务管理,MyBatis 支持本地缓存和二级缓存...
本文将深入探讨面向对象设计(OOD)在信息系统分析中的重要性和实施细节,特别是在第九章所涵盖的内容。面向对象设计是软件工程中的一种关键方法,它通过模拟真实世界中的对象和它们之间的关系来构建软件系统。 ...
#### 八、关联映射 - **单向关联**:讨论单向关联的实现,包括多对一、一对一和一对多关系。 - **单向关联与连接表**:介绍如何使用连接表来映射一对多和多对一关系。 - **双向关联**:探讨双向关联的实现方法,包括...
本资源,"Visual C++范例大全第二章,全部代码一个一个发,一个一分",显然是一个教程或参考材料,专注于第二章的主题——"消息映射与处理"。这部分内容对于理解Windows程序设计至关重要,因为消息机制是Windows应用...
第9章主要讲述了网络服务系统,特别是DNS(Domain Name System)服务器的安装配置。DNS是互联网上用于将人类可读的域名转换成IP地址的重要服务。理解DNS的基本概念和配置对于管理和维护网络服务至关重要。 首先,...
第九章开始讨论开发的流程以及一些有用的工具,通过一个NHibernate应用解释几种着手点。我们同时也研究一些领域模型及数据库关联的代码生成和自动维护模式。紧接着我们还研究了如何通过NHibernate解决传统的数据库...
1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 ...
- **映射文件**: 使用`*.hbm.xml`文件来定义Java对象与数据库表之间的映射关系。 - **Hibernate配置**: 配置`hibernate.cfg.xml`文件来设置数据库连接信息、指定映射文件位置等。 - **构建与Maven**: 使用Maven作为...
第9节-提升性能.ppt将探讨优化Hibernate应用的技巧,如缓存机制(第一级缓存、第二级缓存)、批处理、延迟加载、懒加载等,以及如何避免N+1查询问题。 9. **拦截器和事件**: 第8节-拦截器和事件.ppt会讲解...
4. **模型第一或代码第一**:EF Core支持模型第一(通过数据库模型创建代码)和代码第一(通过代码定义模型然后生成数据库)两种开发模式,开发者可以根据自己的习惯选择。 5. **查询语言API**:使用Linq(Language...