- 浏览: 517225 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (278)
- java (41)
- 设计模式 (4)
- sql (10)
- webservice (2)
- spring (9)
- struts (6)
- struts2 (32)
- hibernate (27)
- Struts_hibernate_Spring整合 (4)
- Velocity (1)
- Servlet (9)
- JSP (6)
- javascript (19)
- jquery (10)
- ajax (4)
- html、xml (3)
- JDBC (2)
- JDK (6)
- mysql (2)
- oracle (11)
- SqlServer (1)
- DB2 (4)
- tool (7)
- linux (5)
- UML (1)
- eclipse (8)
- 执行文件 (1)
- 应用服务器 (4)
- 代码重构 (1)
- 日本語 (19)
- 交规 (1)
- office (9)
- firefox (1)
- net (1)
- 测试 (1)
- temp (6)
- 对日外包 (1)
- windows (1)
- 版本控制 (1)
- android (2)
- 项目管理 (1)
最新评论
Answer类为Question类一对多关联关系,即一个问题对应多个答案。他们的表结构如下
如果希望Answer集合在Question类中作为List存储,我们可以使用hibernate的list或者bag标签来进行映射。
当使用list标签映射时,Question.hbm.xml中的配置如下:
<hibernate-mapping> <class name="mypackage.Question" table="question"> <id name="id" type="integer"> <column name="id" /> <generator class="identity" /> </id> <property name="userId" type="integer"> <column name="user_id" /> </property> <property name="content" type="string"> <column name="content" length="200" /> </property> <property name="time" type="timestamp"> <column name="time" length="19" /> </property> <list name="answers" inverse="true" cascade="all" lazy="false"> <key column="question_id" not-null="true"/> <index column="position" /> <one-to-many class="com.skyseminar.meeting.db.TMeetingAnswer"/> </list> </class> </hibernate-mapping>
list标签中,key元素表示Answer表通过外键question_id参照Question表。
因List集合是个有序的集合,所以要使用<index column="position"/>来标明其顺序。(position为Answer表中附加字段)
因此在插入更新时便需要维护position字段,否则索引设置错误,取出的数据就会出现空值情况。
而是用bag标签映射list集合,则无需维护多余的字段。因此使用Hibernate进行一对多映射时,选择使用bag标签更佳。值得注意的是bag集合对象为无序排列,如果需要排序,可以使用order-by标签。
bag标签使用格式如下:
<bag name="answers" order-by="id asc" lazy="false"> <key column="question_id" /> <one-to-many class="mypackage.Answer"/> </bag>
发表评论
文章已被作者锁定,不允许评论。
-
Hibernate 配置 说明
2011-11-29 09:05 1478Hibernate配置说明 <?xm ... -
hibernate 相关问题 (一)
2011-04-06 13:50 1462一、Hibernate缓存深入详解 看附件 ... -
Hibenrate 中 inverse="true"
2010-09-19 10:12 1054转:http://www.iteye.com/to ... -
hibernate 3.0 中 批量更新,批量删除
2010-09-09 12:51 979hibernate 2.1没有对批量更新和批量删除提供很好的支 ... -
hibernate one-to-one
2010-09-07 15:56 1422一。 1. 完全的一对一关系,即A与B两种实体,分两个表格, ... -
hibernate many-to-many
2010-09-07 15:26 878Inverse是hibernate双向关系 ... -
hibernate 集合排序 二 (数据库排序)
2010-09-03 11:03 1140<set><idbag>< ... -
hibernate 集合排序 一 (内存排序)
2010-09-03 10:52 1082内存中排序 <set><map ... -
hibernate map映射
2010-09-03 10:46 1018Person.java package com.aa ... -
hibernate idbag映射
2010-09-03 10:35 1046假设Team和Student是1对多的关系,而studen ... -
hibernate set映射
2010-09-03 10:27 1792Hibernate之容器映射 Set映射 两张表对应一个 ... -
hibernate 二级缓存(三)
2010-08-31 11:00 1364过这篇文章纪录hibernate二级缓存的一些使用经历,利用几 ... -
hibernate 二级缓存(二)
2010-08-31 10:48 11381 启用 Hibernate 二级缓存 Hibe ... -
hibernate 二级缓存(一)
2010-08-31 10:29 1835一。 1 . Hibernate ... -
hibernate 事务 并发
2010-08-27 10:17 1384数据库事务与并发 ... -
hibernate 执行 本地 sql
2010-08-25 10:47 17431.为了把sql查询返回的关系数据映射为对象,需 ... -
Hibernate3的配置参数汇总
2010-08-25 10:22 7531、Hibernate JDBC属性 属 ... -
正确理解 hibernate 的 inverse many-to-many
2010-08-25 10:18 815Inverse是hibernate双向关系 ... -
Hql 语法
2010-08-19 14:40 915HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征。 ... -
hibernate检索策略(类级别检索,关联基本检索,延迟加载...)(二)
2010-08-16 22:36 1399转:http://blog.csdn.net/qking934 ...
相关推荐
Hibernate容器映射技术(Set、List、Map)
**标题:“Hibernate List集合映射”** 在Java的持久化框架Hibernate中,集合映射是将数据库中的表与Java对象的集合属性关联的过程。...理解和熟练掌握List映射的配置和操作,对于进行高效、稳定的ORM编程至关重要。
这种映射可以通过集合类型如List、Set等来表示子项的集合。 2. **多对多关联映射**: 多对多关联是两个实体之间都可以有多个匹配项的情况,比如学生和课程的关系。在Hibernate中,我们可以使用`@ManyToMany`注解来...
本文将详细探讨如何使用Hibernate映射集合属性List,以及如何让Hibernate自动创建对应的数据库表,无需手动编写SQL语句。 首先,我们需要理解Hibernate的映射机制。Hibernate通过ORM(对象关系映射)技术将Java对象...
Hibernate支持多种集合映射类型,包括List、Set、Map、Bag、Array等。它们之间的区别主要在于元素的唯一性、顺序性和映射到数据库的实现方式。例如,List和Array维护元素的插入顺序,而Set不允许重复元素;Map则...
在Hibernate中,我们可以使用集合类(如List、Set、Map等)来映射这些关系。例如,一个学生可以有多次成绩记录,这就构成了一个学生到成绩的映射关系,通常我们使用Map来表示这种关系,因为Map能确保每个学生都有...
本文将深入探讨Hibernate中的四种主要集合映射类型:Set、List、Array和Map,以及它们在实际开发中的应用场景和配置。 一、Set集合映射 Set集合映射是最常见的映射类型,它不允许重复元素。在Hibernate中,Set通常...
在Java的持久化框架Hibernate中,数组映射是一种常见的数据模型转换方式,它允许我们将数据库中的数据以数组的形式存储在Java对象中。本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、...
**hibernate映射与查询** Hibernate 是一个流行的 Java 应用程序开发框架,它提供了一个持久层解决方案,简化了数据库操作。对于初学者来说,理解 Hibernate 的映射和查询机制是至关重要的,因为它们构成了 ...
Hibernate 集合映射详解 Hibernate 是一个流行的Java持久化框架,它提供了多种集合映射类型,以满足不同的业务需求。在 Hibernate 中,集合映射是指将 Java 集合类型与数据库表之间的映射关系。常见的集合映射类型...
在IT行业中,数据库管理和对象关系映射(ORM)框架是至关重要的组成部分,特别是对于Java开发者而言,Hibernate是一个广泛使用的ORM工具。本篇文章将深入探讨如何在Hibernate中映射树形结构,这是一种处理复杂数据...
对于数组和集合,如List、Set、Map等,Hibernate提供了ListType、SetType、MapType等映射类型,可以根据实际需求选择。 此外,自定义对象的映射是Hibernate映射中的一个重要部分。通过在实体类上使用@Entity注解,...
例如,`<set>`用于映射Java集合到数据库的表,`<list>`映射到有序的列表,`<map>`映射到键值对,`<bag>`则用于无序集合。每个集合映射都可以配置元素类型、排序规则以及关联的表。 在配置中,我们还需要关注懒加载...
在 Hibernate 映射中,需要使用 `one-to-one` 元素,并设置 `constrained="true"`,表明该类的主键由关联类生成。 3. Hibernate 一对一连接表单向关联: 这种关联方式是通过额外的连接表来实现一对一关系的。连接...
在Hibernate的映射文件(.hbm.xml)中,我们通常使用`<set>`, `<list>`, `<map>`等标签来定义集合映射。每个标签都有对应的属性,例如: - `name`: 对象属性名。 - `table`: 所映射的数据库表名。 - `inverse`: ...
Hibernate 支持多种集合类型,如 List、Set、Map 等,它们可以作为一对多或多对多关系的容器。`@ElementCollection` 用于映射非实体类属性的集合,而 `@OrderColumn` 可以指定集合元素的排序方式。 6. **级联操作 ...
在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...
List映射通常通过`<list>`标签来实现,其中可以包含`<key>`、`<index>`和`<one-to-many>`等子标签,分别用于指定主键字段、索引字段和关联的实体类。 #### Set映射 与List不同,Set在Hibernate中主要用于去除重复...
通过`set`、`list`、`map`等集合节点实现一对多的关联映射,其中`inverse`属性用于控制关联关系的维护方。 #### 7. 多对一关联 `many-to-one`节点表示多对一的关系,通常涉及外键引用。 #### 8. 多对多关联 `...