- 浏览: 94691 次
- 性别:
- 来自: 济南
最新评论
-
fightingIOW:
案例看了,能实现上传,但是不是异步的,怎么改成页面可以预览呢? ...
swfUpload实例 -
kizz:
您好,实例我看了,确实不错。您有struts2版的吗?现在项目 ...
swfUpload实例
Hibernate将表之间的关系映射成对象之间的关系
单向关系
1,1--1 (外键一对一,主键一对一)
2,1--N
3,N--1
4,N--N
双向关系
1,1--1
2,1--N(N--1)
3,N--N
(1) 1--1( 单向 外键一对一)
基于外键关联的单向一对一关联 和单向多对一关联 几乎是一样的。唯一的不同就是单向一对一关联中的外键字段具有唯一性约束。
第一步:// 数据库中创建表 表的关系映射
create table Person ( personId bigint not null primary key, addressId bigint not null unique )
create table Address ( addressId bigint not null primary key )
第二步:// 创建类, 对象的关系映射
// 人员类
public class Person
{
private int id;
private Address address; // 包含了对方的引用
}
//地址类
public class Address{
private int id;
}
第三步:xml的配置
<class name="Person">
<id name="id" column="personId">
<generator class="native"/>
</id>
<many-to-one name="address" --本类中的属性名
column="addressId" --本类对应表中的列名
class = "Address" --本类所关联对方的类
unique="true" --可以对对方的引用进行唯一性约束(一对一的关系),也可以不进行唯一性约束(对象之间多对一的关系)
cascade = "all" -- 表明操作是否从父对象级联到被操作的对象
not-null="true"/> -- 必须加上, 保证两个表的关系
</class>
<class name="Address">
<id name="id" column="addressId">
<generator class="native"/>
</id>
</class>
第四步: 创建对象,保存到数据库
// 先创建被引用的对象
Address address = new Address();
// 创建引用对象,并给被引用的对象赋值
Person person = new Person();
person.address = address;
// 保存对象
session.save(address);
session.save(person );
(2)1--1( 双向 外键一对一)
第一步:表的结构和【(1)单向 1--1(外键一对一)】的表结构是没有变化
第二步: 只是再Address中增加了Person的引用
// 人员类
public class Person
{
private int id;
private Address address; // 包含了对方的引用
}
//地址类
public class Address{
private int id;
// 增加了person对象的引用
private Person person;
}
第三步:xml的配置
<class name="Person">
<id name="id" column="personId">
<generator class="native"/>
</id>
<many-to-one name="address" --本类中的属性名
column="addressId" --本类对应表中的列名
class = "Address" --本类所关联对方的类
unique="true" --可以对对方的引用进行唯一性约束(一对一的关系),也可以不进行唯一性约束(对象之间多对一的关系)
cascade = "all" -- 表明操作是否从父对象级联到被操作的对象
not-null="true"/> -- 必须加上, 保证两个表的关系
</class>
<class name="Address">
<id name="id" column="addressId">
<generator class="native"/>
</id>
-- 增加了以下的xml配置
<one-to-one name="person" // 在本类中的属性名字
class = "Person" // 被引用对象的类名
property-ref="address"/> // 关联类的属性名和本类的主键相对应
</class>
(3)1--1(单向 共享主键关联)
第一步:表的结构 :
create table Person ( personId bigint not null primary key )
create table Address ( addressId bigint not null primary key )
第二步:类的创建 对象之间关系映射
public class Person{
private int personId;
}
public class Address{
private int addressId ;
private Person person; // 在表中没有映射的外键
}
第三步:xml配置
<class name="Person">
<id name="id" column="personId">
<generator class="native"/>
</id>
</class>
<class name="Address">
<id name="id" column="addressId ">
<generator class="foreign">
<param name="property">person</param>
</generator>
</id>
<one-to-one name="person"
constrained="true" -- 取值必须从外键中取 (必须加上)
class="Person
" cascade="true"
/>
</class>
第四步:创建对象, 保存到数据库
Person person = new Person(); //创建被依赖的对象
Address address = new Address(); // 创建依赖对象
address.setPerson(person);
session.save(address ); // 保存依赖对象
(4)1--1(双向 共享主键关联)
第一步:表的结构 : 数据库和(3)是一样的
create table Person ( personId bigint not null primary key )
create table Address ( addressId bigint not null primary key )
第二步:类的创建 对象之间关系映射
public class Person{
private int personId;
private Address address; // 增加了address属性,但是在表中是没有映射字段的
}
public class Address{
private int addressId ;
private Person person; // 在表中没有映射的外键
}
第三步:xml的配置
<class name="Person">
<id name="id" column="personId">
<generator class="native"/>
</id>
<one-to-one name="address" class="Address " cascade="true"/>
//增加了one-to-one的配置
</class>
<class name="Address">
<id name="id" column="addressId ">
<generator class="foreign">
<param name="property">person</param>
</generator>
</id>
<one-to-one name="person"
constrained="true" -- 取值必须从外键中取 (必须加上)
class="Person
" cascade="true"
/>
</class>
第四步:创建对象保存数据库
保存对象书顺序是没有改变的 (要先保存自动生成主键的对象)
Person person = new Person(); //创建被依赖的对象
Address address = new Address(); // 创建依赖对象
address.setPerson(person);
session.save(address ); // 保存依赖对象
发表评论
-
flashPaper转换swf代码 java
2011-09-08 16:12 2859// 使用flashPaper进行 ... -
自主项目安装部署(包含文档)
2011-09-08 15:21 12221. 安装Oracle 1.1运行安装Oracl ... -
oracle 循环插入数据
2011-09-05 17:53 833declarev_LoopCounter Binary_Int ... -
oracle数据库自动备份
2011-09-05 16:13 454把/opt/oraBakSH目录权限放开:chmod -R 7 ... -
后台验证struts2的上传文件大小
2011-08-05 17:06 2165/** * 返回值true表示验证文件大小通过<br/ ... -
tomcat虚拟目录配置(lunix/windows)
2011-08-03 10:50 765虚拟目录的配置: 在</host>的前面添加: ... -
myeclipse6.5 注册码生成器
2011-07-25 09:30 1093解决开发工具myEclipse6.5 注册码过期问题 ... -
本项目中使用添加收藏和设置首页
2011-07-23 14:41 745调用链接: <a href="javascr ... -
常用的网页播放器代码
2011-07-22 16:15 921常用的网页播放器代 ... -
orale不同数据库之间,表数据的转存
2011-07-21 16:27 964不同数据库之间,数据移行 目标: 在oracle数据库 ... -
解决点击页面的查询后,刷新页面,会弹出浏览器自带的对话框
2011-07-20 17:28 9191. 现象:点击页面的查询后,刷新页面,会弹出浏览器自带的对话 ... -
防刷新重复提交 action配置(防乱码) js防刷
2011-07-20 11:35 26761. 现象:在我们系统中,新增、编辑数据后,继续刷新页面后,会 ... -
swfUpload实例
2011-07-19 13:50 10310很好的实例: 官方网站: http://swfup ... -
图片轮播js及调用
2011-07-08 10:54 16911. 图片轮播所需js // JavaScript Docu ... -
设置首页和添加收藏夹
2011-07-06 09:30 950// JavaScript Document /* *Ç ... -
java导入excel表格
2011-06-18 16:31 964一个从网上下载的很好的excel操作资料! 1 从Ex ... -
枚举的使用 实例
2011-06-17 15:44 752package utils; import java.uti ... -
js 判断文件时候为空
2011-06-16 17:30 3331/** * 初始化 选择试题列表页面,判断复选框是否选中 ** ... -
struts2 下的文件下载
2011-06-16 17:28 905推荐:Struts 2中实现文件下载(修正中文问题)http: ... -
解决linux下oracle导入数据中文乱码方案
2011-05-25 09:53 1853<script type="text/ ...
相关推荐
Hibernate实体关联关系映射--学习总结.pdf
在Java开发领域,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而Eclipse作为主流的Java集成开发环境,其丰富的插件生态使得开发效率得以提升。"hibernatetools-Update-4.1.1.Final_...
在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`是Hibernate 3.0版本中的两个核心文件,它们定义了...
在Java的持久化框架Hibernate中,关系映射是数据库对象之间的关联方式,它允许我们将复杂的数据库结构映射到Java对象上。"Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联...
Hibernate Tools是开发者在使用Hibernate框架进行Java应用程序开发时的重要辅助工具,它为Eclipse IDE提供了强大的集成支持,包括对象关系映射(ORM)的可视化设计、逆向工程、数据库生成、HQL和SQL查询编辑等功能。...
Hibernate是目前广泛使用的持久层框架,它采用对象关系映射(ORM)技术,将Java对象映射到关系型数据库中。在使用Hibernate进行数据持久化操作时,如何处理实体之间的关联关系是一个非常重要的方面。实体关联关系映射...
在Java的持久化框架Hibernate中,Many-to-Many关系是一种常见的数据库表之间的关联方式,它表示一个实体可以与多个其他实体进行关联,反之亦然。本文将深入探讨如何在Hibernate中处理Many-to-Many关系的级联保存、...
Hibernate对象关系映射一对多 很基础等文档
1. `org.hibernate.annotations`:这是HCA提供的核心注解库,包括`@GeneratedValue`、`@Temporal`、`@JoinColumn`等,这些注解在Java源码中使用,用于描述实体类的持久化行为。 2. `org.hibernate.annotations....
Hibernate稳定版(hibernate-release-5.3.23.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键,另一个实体作为关联目标。这种关联方式可以分为单向关联和双向关联两种。 单向关联是指一个实体作为外键,关联到另一个...
Hibernate是Java平台上的一款开源对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作。在SSH(Spring、Struts、Hibernate)框架中,Hibernate作为持久层的解决方案,极大地简化了数据库操作的...
Hibernate稳定版(hibernate-release-5.6.2.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
**标题:“Hibernate关系映射”** 在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式,极大地简化了数据持久化的复杂性。"多对一"关系映射是Hibernate...
1. 关系映射:在Hibernate框架中,关系映射是指对象与数据库表之间关系的定义。关系的数据库表示可以分为一对一、一对多和多对多三种类型。例如,一个部门表和一个部门主管表之间是一对一关系,而一个部门表和下属...
Hibernate,作为Java领域最著名的对象关系映射(ORM)框架之一,极大地简化了数据库操作,使得开发者能够用面向对象的方式来处理数据,而无需关注底层的SQL语句。`hibernate-core-1a8aca9.ta`是Hibernate的核心组件...
Hibernate源码(hibernate-orm-main.zip)Source Code: Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。 它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
Hibernate稳定版(hibernate-release-5.4.32.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
Hibernate的核心功能包括:持久化类、对象-关系映射、查询语言HQL等。 Middlegen,全称为Middle Generation,是针对Hibernate的一个扩展工具,它的主要作用是自动生成基于Hibernate的持久化类、映射文件和相关的DAO...