在hibernate常常用set来做onetomany或manytomany。
而set本身是不允许有重复的对象存在。
AgentLinkman man = new AgentLinkman();
AgentLinkman man1 = new AgentLinkman();
man.setLinkman("linkman");
man.setDeleted(false);
Date date = new Date();
man.setCreateTime(date);
man.setEmail("email");
man1.setLinkman("linkman1");
man1.setImET("ddd");
man1.setDeleted(false);
man1.setCreateTime(date);
man1.setEmail("email1");
System.out.println(men.equals(men1));
Set set = new HashSet();
set.add(man);
set.add(man1);
System.out.println(set.size());
上面代码运行只后输出
true 1
如果我们想把什么的两个对象都设到set中必须对Linkman对象中equals进行重写.
//对equals进行重写
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj != null && obj instanceof BaseEntity) {
AgentLinkman newObj = (AgentLinkman) obj;
return getId() == newObj.getId()&&getLinkman().equals(newObj.getLinkman());
}
return false;
}
//对hashCode进行重写
public int hashCode() {
int result = 17;
result = (37 * result) + ((this.id != null) ? this.id.hashCode() : 0);
return result;
}
再运行上面的代码就输出:
false 2
其实就对equals比较的规则进行了重写
分享到:
相关推荐
在Java的持久化框架Hibernate中,集合映射是将数据库中的表关系映射到对象模型中的集合类,如List、Set、Map等。这允许我们在Java代码中操作对象集合,而Hibernate负责处理底层的SQL查询和数据存储。本文将深入探讨`...
【标题】"hibernate5.0.2Set.rar" 提供的是Hibernate 5.0.2版本的软件包,这是一款广泛使用的Java对象关系映射(ORM)框架,它允许开发者将数据库操作与Java对象交互,从而简化了Java应用程序中的数据库编程。...
在Hibernate中,我们通常使用`@ElementCollection`或`@ManyToMany`注解来映射Set。例如,如果一个User类可以有多个Phone对象,我们可以这样定义: ```java @Entity public class User { @Id private Long id; @...
6. 集合类映射:在Java中集合是常用的,Hibernate支持集合类的映射,这部分将解释如何映射List、Set、Map等集合类型。 7. 组件映射:当一个类的属性是由其他几个类的属性组合而成时,可以使用组件映射。这部分内容...
在Hibernate中,我们需要在配置文件(`hibernate.cfg.xml`)中指定数据库连接的字符集。例如: ```xml <property name="hibernate.connection.character_set_name">GBK ``` 这将确保Hibernate在与MySQL交互时使用正确...
### Hibernate中Example的用法详解 #### 一、前言 Hibernate作为一款强大的ORM(对象关系映射)框架,提供了多种灵活的查询方式,其中`Example`查询是基于对象实例进行匹配查询的一种方法,它允许开发者通过提供一...
在Java的持久化框架Hibernate中,一对多关系是常见的实体关联类型,表示一个实体可以与多个其他实体相关联。在处理这种关系时,我们通常会使用`Set`或`List`作为关联集合的容器。本篇文章将深入探讨`Hibernate`中一...
- `<element>`标签定义了Set中元素的具体类型以及存储的列名。 #### 四、代码示例 为了更好地理解Set映射,我们来看一个具体的Java类和配置文件的例子。 ##### 4.1 Java实体类定义 首先,定义了一个名为`User`的...
LIST对象排序通用方法HIBERNATE的SET排序.pdf
在Java持久化框架Hibernate中,容器映射技术是将Java集合类(如Set、Map、List等)与数据库中的关联关系进行映射的一种方法。这种技术使得对象之间的复杂关系能够被有效地存储和检索,增强了数据操作的灵活性。下面...
注意:在Hibernate3中,第二个要求并非是Hibernate强制必须的。但最好这样做。 你不能使用一个IdentifierGenerator产生组合关键字。一个应用程序必须分配它自己的标识符。 使用<composite-id> 标签(并且内嵌元素...
1. 实体(Entity):在Hibernate中,实体是Java类,它们代表数据库中的表。通过在实体类上使用`@Entity`注解来标识。 2. 表映射(Mapping):实体与数据库表之间的关系由Hibernate的XML配置文件(或使用注解)定义,...
分析LIST对象排序通用方法HIBERNATE的SET排序.pdf
10. **一对多、多对一、一对一和多对多关系映射**:Hibernate支持多种关联映射,包括集合映射,如List、Set、Map等,以及复合主键的处理。 11. **继承映射**:在Java中,子类可以继承父类。在Hibernate中,这种继承...
在探讨Hibernate中List信息的配置时,我们主要聚焦于如何在ORM(对象关系映射)框架下有效地管理和操作集合类型,尤其是List、Set以及Map。本文将深入解析List与Set在Hibernate中的映射机制,同时也会简要提及Map的...
LIST对象排序通用方法HIBERNATE的SET排序[整理].pdf
9. **集合映射(Collection Mapping)**:Hibernate可以映射Java集合类型到数据库的关联关系,如List、Set、Map等,方便处理一对多、多对一、多对多的关系。 10. **Callback事件**:Hibernate提供了一些生命周期回...
根据提供的文件信息,我们可以推断出这段代码是关于一个用于设置请求字符编码的过滤器(Filter),主要目的是解决在Hibernate框架使用过程中遇到的中文乱码问题。下面将详细阐述与标题、描述及部分代码相关的关键...
在Hibernate框架中,Session是与数据库交互的主要接口,它负责对象的持久化操作。然而,由于Session不是线程安全的,所以在多线程环境中管理Session就需要特别注意。本篇文章将详细探讨Hibernate中Session的管理,...
POJO模型中,实体类需要实现无参构造函数、提供标识属性、使用非final类以及为持久化属性声明get和set方法,并且实现equals()与hashCode()方法。动态模型指的是使用HQL或JPQL进行查询和操作数据。 引导和启动:...