`

值类型映射---Set(2)

阅读更多

这里自定义Email类,set里面放的是 email  类,非常类似组成关系.

在email里面要重写equal和hashcode方法

java 代码
  1. public class User  implements java.io.Serializable {   
  2.   
  3.   
  4.     // Fields       
  5.   
  6.      private long id;   
  7.      private String name;   
  8.      private Set emails;   

 

java 代码
  1. public class Email  implements java.io.Serializable {   
  2.   
  3.   
  4.     // Fields       
  5.   
  6.      private long id;   
  7.      private String email;   

Email类需要重写equals和hascode方法

xml 代码
  1. <hibernate-mapping>  
  2.     <class name="tie.User" table="user" catalog="tie">  
  3.         <id name="id" type="long">  
  4.             <column name="id" />  
  5.             <generator class="native" />  
  6.         </id>  
  7.         <property name="name" type="string">  
  8.             <column name="name" length="45" not-null="true" />  
  9.         </property>  
  10.         <set name="emails" table="email">  
  11.             <key column="id"></key>  
  12.             <composite-element class="tie.Email">  
  13.                 <property name="email" type ="string" column="email"></property>  
  14.             </composite-element>  
  15.         </set>  
  16.     </class>  
  17. </hibernate-mapping>  

我想这种设计的思路是很灵活的,

关系模型怎么设计,域模型怎么设计就产生不同的配置的方法,只要行的同就可以。

分享到:
评论

相关推荐

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

    这篇博客主要探讨了Java数据类型如何与Hibernate的类型映射进行对应。 首先,Java的基本数据类型在Hibernate中有对应的类型映射。例如,int型在Hibernate中通常映射为Integer类型,因为数据库字段可能允许为空...

    20151910042-刘鹏-DSA实验10-映射-哈希表-跳表实验1

    在Python中,映射是内置的字典类型,提供了丰富的操作接口,如get()、setdefault()、pop()等,方便开发者进行数据管理。 【跳表】 跳表(Skip List)是一种概率型数据结构,用于快速查找有序序列中的元素。跳表通过...

    Ruby-RedisObjects直接将Redis类型映射成Ruby对象

    1. **String**: Redis-Objects将Redis的字符串类型映射为Ruby类的实例方法,例如`key.increment`来增加键的值,或者`key.get`来获取键的当前值。 2. **Hash**: 在Ruby类中,Redis-Objects会创建一个哈希字段,允许...

    VTK User's Guide(中文完整版)

    第2章 安装 2.1 概述-----------------------------------------------------------------------------------------------9 2.2 安装VTK到Windows9x/NT/ME/2000/XP----------------------------------------------...

    grub4dos-V0.4.6a-2017-02-04更新

    使用command --set-ext设置,每个扩展名使用";"分隔 例子: command --set-ext=.g4b;.g4e 执行时可以不用输入扩展名,比如输入test如果当前路径下有一个test.g4b就会自动使用。 2013-10-17 1.修改代码支持...

    hibernate map 集合映射

    这篇文章将深入探讨Hibernate中的集合映射机制,包括其基本概念、类型以及如何在实际开发中进行配置。 ### 1. Hibernate集合映射的基本概念 集合映射是Hibernate中一个核心的概念,它允许我们将数据库表中的多对一...

    MySQL中set类型的使用

    在Java的Hibernate框架中,如果你需要映射一个MySQL的`SET`类型字段,可以使用`@ElementCollection`和`@CollectionTable`注解。例如,假设我们有一个`User`类,其中有一个`interests`字段存储用户的兴趣: ```java @...

    mysql的timestamp类型字段为'0000-00-00 00:00:00'导致mybatis映射时报错解决方法

    2. **MyBatis映射配置**:修改MyBatis的Mapper XML文件,针对这个特殊值进行特殊处理。例如,可以使用`if`条件标签来判断是否为'0000-00-00 00:00:00',如果是,则忽略或者转换为NULL。 ```xml INSERT INTO table...

    hibernate集合的映射

    本文将深入探讨Hibernate中的四种主要集合映射类型:Set、List、Array和Map,以及它们在实际开发中的应用场景和配置。 一、Set集合映射 Set集合映射是最常见的映射类型,它不允许重复元素。在Hibernate中,Set通常...

    java集合与映射(牛)

    - **TreeSet**:基于红黑树实现的Set接口,可以自然排序或根据创建Set时提供的Comparator排序,但不能包含null值。 2. **List** - **特点**: - 允许有重复元素。 - 有序,即添加到集合中的元素会按照插入顺序...

    映射 SQL 和 Java 类型.doc

    1. **getXXX和setXXX方法**:这些方法位于PreparedStatement和ResultSet接口中,如`setInt(int index, int value)`用于设置SQL INTEGER类型的参数,`getString(int index)`用于获取SQL VARCHAR类型的值。方法名中的...

    Hibernate one-to-many / many-to-one关系映射

    "Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联。在这个主题中,我们将深入探讨这两种关系映射的原理、配置和实际应用。 一、一对一(one-to-one)与一对多(one-to-...

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

    在给定的文档“JAVA培训-HIBERNATE的集合映射.doc”中,主要讲解了Hibernate如何处理不同类型的集合映射,包括Set、List、Array、Map和Bag。我们将详细讨论这些集合映射以及它们在实际应用中的使用。 首先,我们来...

    程序设计-我们的数据类型.pptx

    - 整型(Integer):如int,用于存储整数值,如-2、0、3等。在不同的编程语言中,整型有多种大小,如32位或64位。 - 浮点型(Floating-point):如float或double,用于存储带有小数的数值,如3.14或-0.5。浮点型比...

    《python核心编程》第七章:映射和集合类型1

    在Python编程语言中,映射和集合类型是两种非常重要的数据结构,它们提供了灵活的数据组织方式。本章主要聚焦于映射(字典)和集合类型的深入理解和使用。 7.1 映射类型:字典 字典是Python中一种关联数据结构,它...

    Hibernate 参考文档

    - **映射到"任意"(any)类型**:一种特殊的数据类型映射方式,用于存储任意类型的对象。 - **SQL中引号包围的标识符**:如何在映射文件中引用数据库中的标识符。 - **映射文件的模块化**:将大型映射文件拆分为更小...

    matlab编程和数据类型函数.docx

    - setfield:设置结构数组中字段的值。 4. 单元数组类型: - cell:创建单元数组。 - cell2mat:将单元数组转换为单一矩阵。 - celldisp:显示单元数组的内容。 - cellfun:对单元数组中的每个元素应用函数。 ...

    hibernate关联映射的作用和常用属性解释

    - **`discriminator-value`**:用于多态映射时区分不同子类的值。 - **`mutable`**:指定是否允许修改对象的状态,默认为`true`。 - **`schema`**:指定数据库模式或模式名称。 - **`catalog`**:指定数据库目录。 -...

    get set方法生成工具

    2. **set方法**:set方法用于设置对象的私有属性值。它接受一个参数,参数类型与属性的类型相同,返回类型通常是void。例如,对于`age`变量,set方法可能是`public void setAge(int age) { this.age = age; }`。 在...

    Dozer一个JavaBean至JavaBean映射器

    对于集合类型的属性,如List、Set、Map,Dozer会自动进行元素级别的映射。这意味着源对象的集合中的每个元素都会被映射到目标对象的对应集合中。 ### 5. 深度映射与自定义事件监听 Dozer不仅支持简单的属性映射,...

Global site tag (gtag.js) - Google Analytics