`
only_java
  • 浏览: 112405 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate集合类映射的疑惑

 
阅读更多

 

首先我们以一个例子来说明:

 ITEM 与IMAGE(假设有多个字段比如name path size,item_id 等)

 

显然它们是一对多的关系,要实现它们的关联

则需在ITEM中需要加入一个集合类映射

这里牵涉到两种办法来解决这个问题,hibernate中有两种类型,实体和值类型。所以

第一:当用实体类型时其实就是用<one- to -many>即:item映射文件中加入:
<set name="image" table="image">

<key column="item_id"></key>

<one-to-many  class="Image">

</set>

 

第二:当使用值类型时,则需要使用到组件的结合

即:item映射文件中加入:
<set name="image" table="image">

<key column="item_id"/>

<composite-element class="Image">

<property name="name" column=""/>

...

</composite-element >

</set>

 

这两者都可以实现ITEM和IMAGE的关联,但是区别就在第2中的IMAGE不是一个实体类(持久化类),没有标识符。使用所有字段作为联合主键。

显然在实际中第一种应该会用到多些,我想不通“值类型的集合映射”在哪里有应用场景?

分享到:
评论
2 楼 龙俊维 2009-11-04  
[b][/b][i][/i][u][/u]
引用
[img][/img]
1 楼 Pigwen 2009-11-04  
我想hibernate实现这两种关联实际上就是为了表示了UML中聚集和组合的概念。不知道hibernate能否映射内部类,如果能的话这个应该是一个应用场景。
在代码层面就不清楚了,也许hibernate会为值对象映射作一些优化吧。

相关推荐

    hibernate集合的映射

    Hibernate集合映射是ORM的重要组成部分,它使得Java对象和数据库表之间的关系更加直观和灵活。根据实际需求选择合适的集合类型,可以有效地处理复杂的数据关系。在实际应用中,应结合业务场景、数据特性以及性能需求...

    Hibernate集合映射与关联关系

    在Hibernate中,我们可以使用集合类(如List、Set、Map等)来映射这些关系。例如,一个学生可以有多次成绩记录,这就构成了一个学生到成绩的映射关系,通常我们使用Map来表示这种关系,因为Map能确保每个学生都有...

    hibernate set 集合映射

    在Java的持久化框架Hibernate中,集合映射是将数据库中的表关系映射到对象模型中的集合类,如List、Set、Map等。这允许我们在Java代码中操作对象集合,而Hibernate负责处理底层的SQL查询和数据存储。本文将深入探讨`...

    [原]Hibernate集合映射

    《Hibernate集合映射详解》 Hibernate作为Java领域中的一款强大持久化框架,其核心功能之一就是对象关系映射(ORM),使得开发者可以方便地在Java对象与数据库表之间进行交互。其中,集合映射是Hibernate中非常关键...

    hibernate bag 集合映射

    在描述中提到的“博文链接:https://lijunabc.iteye.com/blog/443353”,虽然具体内容没有给出,但通常这类博客文章会详细解释如何配置和使用Hibernate的bag集合映射,包括XML或注解方式的映射定义,以及在Java代码...

    Hibernate常见集合映射(Set,List_Array,Map,Bag)

    Hibernate 集合映射详解 Hibernate 是一个流行的Java持久化框架,它提供了多种集合映射类型,以满足不同的业务需求。...通过正确地设计数据库表结构和实体类,可以充分发挥 Hibernate 集合映射的功能。

    JAVA数据类型与Hibernate的类型映射

    通过在实体类上使用@Entity注解,并使用@Id注解指定主键字段,可以将一个Java类映射到数据库的一张表。字段则通过@Column注解来指定列名和属性,如长度、是否可为空等。 在处理NULL值时,Hibernate提供了可选的...

    Hibernate集合映射

    综上所述,Hibernate集合映射是将Java集合类与数据库表关联的关键机制,涵盖了从一对一、一对多到多对多的各种关系映射。理解并熟练掌握这些映射方式,能够帮助开发者更好地设计和实现数据持久化层,提高代码的可...

    hibernate list集合映射

    **标题:“Hibernate List集合映射”** 在Java的持久化框架Hibernate中,集合映射是将数据库中的表与Java对象的集合属性关联的过程。List集合映射是其中常见的一种方式,它允许我们将数据库中的一组相关记录映射到...

    hibernate array 数组映射

    在Java的持久化框架Hibernate中,数组映射是一种常见的数据模型转换方式,它允许我们将数据库中的数据以数组的形式存储在Java对象中。本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、...

    JAVA培训-HIBERNATE的集合映射.doc

    ### JAVA培训-HIBERNATE的集合映射 #### 概述 本文主要聚焦于Hibernate框架下的集合映射机制,特别是针对`Set`、`List`、`Array`、`Map`、`Bag`五种集合...希望本文能帮助读者更好地理解和应用Hibernate集合映射技术。

    Hibernate映射集合属性List

    如果不使用注解,我们可以在`hibernate.cfg.xml`中配置实体类和数据库表的关系,然后在实体类的`.hbm.xml`文件中定义集合属性的映射。例如,`User.hbm.xml`可能包含以下内容: ```xml &lt;!-- 其他属性映射 --&gt; ...

    hibernate的多种映射关系

    在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系模型无缝对接。本篇文章将详细探讨 Hibernate 中的多种映射关系。 1. **一对一映射 (One-to-One)** 一对一映射表示两个...

    hibernate中容器映射技术

    在Java持久化框架Hibernate中,容器映射技术是将Java集合类(如Set、Map、List等)与数据库中的关联关系进行映射的一种方法。这种技术使得对象之间的复杂关系能够被有效地存储和检索,增强了数据操作的灵活性。下面...

    hibernate多对多关联映射

    在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...

    Hibernate_容器映射技术笔记

    在示例中,Person类有一个名为`emails`的集合,它映射到emails表,并通过`&lt;key&gt;`标签指定外键关联。 2. **List**: List是允许重复元素的集合,适合存储可能重复的数据。在数据库中,可以通过增加一个索引字段来区别...

    hibernate关联映射实例

    Hibernate支持类的继承映射,这使得对象模型可以更好地反映业务逻辑。主要有三种继承策略:单表继承(Single Table Inheritance, STI)、联合继承(Concrete Table Inheritance, CTI)和表-per-hierarchy(Table ...

Global site tag (gtag.js) - Google Analytics