- 浏览: 1224793 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (883)
- Spring (101)
- Swing (1)
- Mysql (21)
- Js (59)
- Jsp (2)
- Hibernate (19)
- Myeclipse (5)
- SqlServer 2000 (2)
- poi (15)
- Java (70)
- SSH (12)
- Html (47)
- Fusion Charts (1)
- C\C++ (2)
- 汇编 (36)
- Jquery (37)
- Struts2 (6)
- Ubuntu (16)
- powerDesinger (4)
- Jboss (3)
- JAX-RS (13)
- JAXB (5)
- JAX-WS (11)
- JMS (4)
- WebSocket (8)
- PHP (16)
- Flash (1)
- maven (3)
- Oracle (8)
- HttpClient (6)
- sqlserver (19)
- svn (5)
- Tomcat (3)
- Jdbc (3)
- EsayUi (11)
- 微信公众平台 (19)
- IIS (2)
- Freemarker (11)
- Comet (1)
- Spring MVC (85)
- JBoss Seam (3)
- 二维码 (9)
- Spring Security (4)
- Ehcache (3)
- Apache Shiro (7)
- jackson (16)
- JPA (8)
- jcaptcha (2)
- RSA (2)
- Ajax (6)
- 跟我学Shiro (0)
- Spring4 (19)
- 跟我学spring3 (0)
- css (32)
- excel (4)
- Filter (3)
- 微信公众帐号开发教程 (0)
- Android (6)
- log4j (6)
- 淘宝接口 (17)
- 支付集成 (3)
- 单点登录 (3)
- Html5 (27)
- 移动平台前端 (3)
- Linux (44)
- FusionCharts (27)
- Json Jackson Xml (5)
- 方培工作室-微信开发 (0)
- Apache与Tomcat与IIS整合 (10)
- Nginx (17)
- webService (2)
- apache (4)
- lucene (3)
- lodop (2)
- Shiro (3)
- zTree (2)
- ireport (12)
- Servlet3.0 (5)
- 前端美工 (19)
- AngularJS (1)
- C#开发微信门户及应用 (0)
- Shell (3)
- bat脚本 (16)
- Bootstrap (26)
- Less (10)
- photoshop (6)
- Redis (6)
- Mongodb (10)
- MyBatis (3)
- 数据结构 (0)
- 读写分离-主从复制 (0)
- JFinal (0)
- 百度地图api (3)
- hadoop-hbase-hive-spark (3)
- WebStorm (2)
- Quartz (5)
- ios (0)
- Mina (8)
- Android Studio (4)
- Ratchet教程 (0)
- 移动端重构系列 (1)
- cubic-bezier贝塞尔曲线CSS3动画工具 (1)
- nginx+tomcat+memcached集群 (0)
- 集群 (0)
- ZooKeeper (3)
- Dubbo (0)
- vpn (0)
- kafka (0)
- JVM垃圾回收机制 (0)
- 微信小程序 (0)
- Lua (0)
- Hystrix (0)
- Vue.js (0)
- mycat (0)
- Openresty (0)
- springBoot (0)
- 新分类 (0)
- guava (0)
- 大数据 (0)
- Sentinel (0)
最新评论
-
JackMacing:
中文怎么解决?
SpringMVC与iReport(JasperReports) 5.6整合开发实例 -
18335864773:
用pageoffice把.可以实现在线的文档操作.直接转pdf ...
转:使用jasperreport动态生成pdf,excel,html -
linhao0907:
推荐一款轻量开源的支付宝组件:https://github.c ...
关于Alipay支付宝接口(Java版) -
songronghu:
太好了,非常有用,谢谢分享~
Java ConcurrentModificationException 异常分析与解决方案 -
wzwahl36:
http://www.atool.org/json2javab ...
Java下利用Jackson进行JSON解析和序列化
多对一(many to one)
单向many-to-one关联是最常见的单向关联关系。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<many-to-one name="address" column="addressId" not-null="true"/>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
</class>
create table Person ( personId bigint not null primary key, addressId bigint not null )
create table Address ( addressId bigint not null primary key
基于外键关联的单向一对一关联和单向多对一关联几乎是一样的。唯一的不同就是单向一对一关联中的外键字段具有唯一性约束。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<many-to-one name="address" column="addressId" unique="true" not-null="true"/>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
</class>
create table Person ( personId bigint not null primary key, addressId bigint not null unique )
create table Address ( addressId bigint not null primary key )
基于主键关联的单向一对一关联通常使用一个特定的id生成器。(请注意,在这个例子中我们掉换了关联的方向。)
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
</class>
<class name="Address">
<id name="id" column="personId"><generator class="foreign">
<param name="property">person</param></generator></id>
<one-to-one name="person" constrained="true"/>
</class>
create table Person ( personId bigint not null primary key )
create table Address ( personId bigint not null primary key )
基于外键关联的单向一对多关联是一种很少见的情况,并不推荐使用。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<set name="addresses">
<key column="personId" not-null="true"/>
<one-to-many class="Address"/></set>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
</class>
create table Person ( personId bigint not null primary key )
create table Address ( addressId bigint not null primary key, personId bigint not null )
我们认为对于这种关联关系最好使用连接表。
8.3. 使用连接表的单向关联(Unidirectional associations with join tables)
基于连接表的单向一对多关联 应该优先被采用。请注意,通过指定unique="true",我们可以把多样性从多对多改变为一对多。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<set name="addresses" table="PersonAddress">
<key column="personId"/>
<many-to-many column="addressId" unique="true" class="Address"/></set>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
</class>
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId not null, addressId bigint not null primary key )
create table Address ( addressId bigint not null primary key )
基于连接表的单向多对一关联在关联关系可选的情况下应用也很普遍。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<join table="PersonAddress" optional="true">
<key column="personId" unique="true"/>
<many-to-one name="address" column="addressId" not-null="true"/></join>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
</class>
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null primary key, addressId bigint not null )
create table Address ( addressId bigint not null primary key )
基于连接表的单向一对一关联非常少见,但也是可行的。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<join table="PersonAddress" optional="true">
<key column="personId" unique="true"/>
<many-to-one name="address" column="addressId" not-null="true" unique="true"/>
</join>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
</class>
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null primary key, addressId bigint not null unique )
create table Address ( addressId bigint not null primary key )
最后,还有 单向多对多关联.
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<set name="addresses" table="PersonAddress">
<key column="personId"/>
<many-to-many column="addressId" class="Address"/>
</set>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
</class>
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null, addressId bigint not null, primary key (personId, addressId) )
create table Address ( addressId bigint not null primary key )
8.4. 双向关联(Bidirectional associations)
8.4.1. 一对多(one to many) / 多对一(many to one)
双向多对一关联 是最常见的关联关系。(这也是标准的父/子关联关系。)
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<many-to-one name="address" column="addressId" not-null="true"/>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
<set name="people" inverse="true">
<key column="addressId"/>
<one-to-many class="Person"/></set>
</class>
create table Person ( personId bigint not null primary key, addressId bigint not null )
create table Address ( addressId bigint not null primary key )
基于外键关联的双向一对一关联也很常见。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<many-to-one name="address" column="addressId" unique="true"not-null="true"/>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
<one-to-one name="person" property-ref="address"/>
</class>
create table Person ( personId bigint not null primary key, addressId bigint not null unique )
create table Address ( addressId bigint not null primary key )
基于主键关联的一对一关联需要使用特定的id生成器。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<one-to-one name="address"/>
</class>
<class name="Address">
<id name="id" column="personId">
<generator class="foreign">
<param name="property">person</param></generator></id>
<one-to-one name="person" constrained="true"/>
</class>
create table Person ( personId bigint not null primary key )
create table Address ( personId bigint not null primary key )
8.5. 使用连接表的双向关联(Bidirectional associations with join tables)
8.5.1. 一对多(one to many) /多对一( many to one)
基于连接表的双向一对多关联。注意inverse="true"可以出现在关联的任意一端,即collection端或者join端。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<set name="addresses" table="PersonAddress">
<key column="personId"/>
<many-to-many column="addressId" unique="true" class="Address"/></set>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
<join table="PersonAddress" inverse="true" optional="true">
<key column="addressId"/>
<many-to-one name="person" column="personId" not-null="true"/></join>
</class>
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null, addressId bigint not null primary key )
create table Address ( addressId bigint not null primary key )
基于连接表的双向一对一关联极为罕见,但也是可行的。
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<join table="PersonAddress" optional="true">
<key column="personId" unique="true"/>
<many-to-one name="address" column="addressId" not-null="true" unique="true"/>
</join>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
<join table="PersonAddress" optional="true" inverse="true">
<key column="addressId" unique="true"/>
<many-to-one name="address" column="personId" not-null="true" unique="true"/>
</join>
</class>
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null primary key, addressId bigint not null unique )
create table Address ( addressId bigint not null primary key )
最后,还有 双向多对多关联.
<class name="Person">
<id name="id" column="personId"><generator class="native"/></id>
<set name="addresses">
<key column="personId"/>
<many-to-many column="addressId" class="Address"/></set>
</class>
<class name="Address">
<id name="id" column="addressId"><generator class="native"/></id>
<set name="people" inverse="true">
<key column="addressId"/>
<many-to-many column="personId" class="Person"/></set>
</class>
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null, addressId bigint not null, primary key (personId, addressId) )
create table Address ( addressId bigint not null primary key )
发表评论
-
易百教程
2017-06-07 14:00 0http://www.yiibai.com/lua/l ... -
Hibernate原生SQL查询
2017-04-10 14:20 0http://blog.csdn.net/houpe ... -
Hibernate Shards 数据的水平、垂直切割
2016-08-13 10:29 0http://www.cnblogs.com/RicC ... -
DBCP,CP30,proxool连接池在spring hibernate中的配置
2015-07-13 11:16 0Java代码 用spring默认的连接 ... -
操作EntityManager
2015-03-01 10:31 4563操作EntityManager Interacting ... -
EntityManager实体操作
2015-03-01 10:24 712EntityManager 持久化实体 persi ... -
Could not write JSON: Infinite recursion (StackOverflowError) (through reference
2015-02-23 23:09 4757jackson 中的@JsonBackReference和@ ... -
jackson转换json出现无限递归问题
2015-02-23 23:07 4494环境:springmvc+hibernate+json ... -
hibernate的速度问题--hibernate.jdbc.fetch_size和 hibernate.jdbc.batch_size
2015-01-28 12:48 2102这点我也疑惑过,最初应用hibernate的项 ... -
Java泛型的使用以及注入DAO --由SpringSide想到的
2014-11-05 09:02 923DAO层的BaseHibernateDao类支持泛型,其目 ... -
宿舍管理系统
2012-03-04 00:26 1911项目名称 宿舍管理系统 开发工具 MyEclipse6.0+ ... -
S2SH问题点
2012-03-02 14:29 902Struts2: 为什么每次请 ... -
[转载]最新SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结
2012-02-28 09:51 1697下载地址 一 开发环境 1、动态web工程 ... -
Hiberante annotation 设置延迟加载
2011-10-13 09:24 955@ManyToMany(fetch = FetchType.L ... -
Hibernate -- 注解(Annotation)关系映射
2011-10-11 13:23 27731. Hibernate Annotation关系 ... -
struts2.1.6+hibernate3.3+spring3.0遇到的问题
2011-09-27 17:00 5040struts2.1.6+hibernate3.3+spring ... -
使用 Spring 2.5 注释驱动的 IoC 功能
2011-09-21 15:43 632概述 注释配置相对于 XML 配置具有很多的优势: 它可 ... -
Hibernate的SQL查询
2011-09-21 09:34 1061Hibernate还支持使用SQL查询,使用SQL查询可以利用 ... -
Hibernate使用sql语句查询
2011-09-21 09:29 939import java.util.Iterator; imp ... -
org.hibernate.AnnotationException: No identifier specified for entity
2011-09-15 10:51 1045org.hibernate.AnnotationExcepti ...
相关推荐
它通过实体类和映射文件(hibernate.cfg.xml及.hbm.xml)将对象与数据库表关联起来。在XML配置文件中,我们指定数据源、连接池、实体类和表的映射关系。此外,使用SessionFactory和Session对象,我们可以方便地执行...
总结来说,本主题将深入探讨Hibernate框架下,如何通过XML映射文件和注解进行对象关系映射的配置,包括实体类的设计、字段映射、关联关系的建立,并可能结合具体代码实例进行解析,帮助读者理解并掌握这两种映射方式...
本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中至关重要的概念。 1. **一对多关联映射**: 在现实世界中,一个实体可能会与多个其他实体相关联,...
### Hibernate关联关系配置详解 #### 一、一对多与多对一关系配置 在软件开发过程中,实体之间的关联关系是常见的需求之一。其中,“一对多”与“多对一”的关系尤为常见,这类关系通常用来表示实体之间的层级或...
Hibernate支持注解配置和XML配置两种方式来实现ORM映射和相关操作。 在Hibernate中,注解配置通常用于描述Java类和数据库表之间的映射关系,以及对象的持久化行为。通过在实体类中使用注解(如@Entity、@Table、@Id...
hibernate.cfg.xml 文件是 Hibernate 的基本配置文件,它包含了 Hibernate 与数据库的基本连接信息。在 Hibernate 工作的初始阶段,这些信息被加载到 Configuration 和 SessionFactory 实例中。该文件的基本结构如下...
本文将深入探讨Hibernate 3.0中的数据库关联配置,包括注解和XML两种方式。 1. **注解配置** Hibernate注解提供了在实体类上直接声明数据库表映射和关联关系的方法。例如,@Entity表示一个类映射为数据库表,@...
在Hibernate中,我们使用注解来替代传统的XML配置文件,以声明对象和表之间的映射。主要的注解包括: 1. `@Entity`: 表示这个类是一个实体类,对应数据库中的一个表。 2. `@Table`: 定义实体对应的数据库表名和属性...
在Hibernate中,XML配置文件扮演着至关重要的角色,它定义了实体类与数据库表之间的映射关系,以及数据源、SessionFactory等核心组件的配置。 XML配置文件通常命名为`hibernate.cfg.xml`,在这个文件中,开发者会...
- "关于hibernate的.htm.xml配置.txt":可能包含对`.hbm.xml`文件的详细解释,包括如何编写映射文件,如何定义对象关系,以及如何处理各种关联关系等。 - "关于hibernate的cfg.xml配置.txt":可能涵盖`hibernate.cfg...
"Hibernate XML"特指Hibernate配置和映射文件,这些文件通常以XML格式定义,用于描述Java类与数据库表之间的映射关系以及对象间的关联规则。 标题中的"hibernate xml"涉及到的主要知识点包括: 1. **Hibernate配置...
在这个"hibernate的xml配置关系例子"中,我们将探讨如何使用XML配置文件来定义Java对象与数据库表之间的映射关系。 1. Hibernate XML配置文件: Hibernate的核心配置文件通常是`hibernate.cfg.xml`,这个文件包含...
- 如果单独使用Spring,需要配置Spring的缓存管理器,并关联xmemcache-spring的相关配置。 - 在需要缓存的方法上使用Spring的缓存注解。 8. **实际应用**:这种配置适用于高并发、读多写少的Web应用,例如电子...
在Hibernate中,关联关系是对象关系映射(ORM)的核心组成部分,它允许我们将数据库的表结构映射到Java对象,并管理这些...在hbm.xml文件中正确地配置这些标签和属性,可以使Hibernate更高效、更灵活地管理对象关系。
**用途**:为Hibernate关联的批量抓取设置默认的数量。此配置项有助于提高数据库访问效率。 **取值**:整数值,建议取值为4、8、16等。 ##### 9. `hibernate.default_entity_mode` **用途**:指定默认的实体模式...
在本主题"Hibernate单向一对多关联映射(XML版)"中,我们将深入探讨如何使用XML配置来实现数据库中一个实体类对应多个实体类的关联关系。 在Hibernate中,一对多关联是一种常见的关系映射类型,它反映了数据库中的...
在本项目中,"hibernate关联关系2"是一个关于使用Hibernate框架处理数据库关联关系的实战案例。Hibernate是一个流行的开源对象关系映射(ORM)工具,它允许开发人员使用Java对象来操作数据库,极大地简化了数据库...
标题中的“生成hibernate配置文件和XML的辅助类generate”指的是在Java开发中使用Hibernate框架时,为了简化配置过程,开发者可能会创建一个辅助工具类,这个类可以帮助自动生成Hibernate所需的配置文件和映射XML...
在Hibernate中,一对一关联可以通过配置XML映射文件或者使用注解来实现。我们先来看XML映射文件的例子。假设我们有两个实体,一个是`User`,另一个是`Account`,`User`实体拥有对`Account`的引用。在`User.hbm.xml`...
总之,`hibernate.hbm.xml`文件是Hibernate的核心配置文件,它清晰地定义了Java对象和数据库表之间的映射关系,以及主键生成策略。熟练掌握其结构和用法,能有效提高Hibernate应用的开发效率和数据管理的准确性。