场景:
Station Entity(dynamicUpdate = true, dynamicInsert = true)
Station 与 Genre为多对多的关系,且关系的维护在Station方
Station(id=3)的Genres(items=1701,1901,1903)
代码:
Genre g1 = genreDao.load(Long.valueOf(1701));
Genre g2 = genreDao.load(Long.valueOf(1901));
Genre g3 = genreDao.load(Long.valueOf(1903));
Set<Genre> genreSet = new HashSet();
set.add(g1);
set.add(g2);
set.add(g3);
Set<Genre> genreSetOther = new HashSet();
genreSetOther.add(g1);
genreSetOther.add(g2);
Station s = load(Long.valueOf(3));
//情景1
s.getGenres().add(g1);
s.getGenres().add(g2);
s.getGenres().add(g3);
//情景2
s.setGenres(genreSet);
//情景3
s.getGenres().add(g1);
s.getGenres().add(g2);
s.getGenres().remove(g3);
//情景4
s.setGenres(genreSetOther);
//更新
saveOrUpdate(s);
情景1:
因为set不能重复,且Station为动态更新,所以只会出一条查询s@Station的Genres集合的SQL
情景2:
因为Genres集合为延迟加载,所以不会产生查询s@Station的Genres集合的SQL
但会多出两条SQL(先删除s@Station的Genres集合,再做inset)
情景3:
比情景1多出一条删除中间表的记录
情景4:
同情景2一样
分享到:
相关推荐
在Java的持久化框架Hibernate中,集合映射是将数据库中的表关系映射到对象模型中的集合类,如List、Set、Map等。这允许我们在Java代码中操作对象集合,而Hibernate负责处理底层的SQL查询和数据存储。本文将深入探讨`...
【标题】"hibernate5.0.2Set.rar" 提供的是Hibernate 5.0.2版本的软件包,这是一款广泛使用的Java对象关系映射(ORM)框架,它允许开发者将数据库操作与Java对象交互,从而简化了Java应用程序中的数据库编程。...
上述内容简要介绍了如何使用 Hibernate 操作数据库。Hibernate 是一个强大的 ORM(Object-Relational Mapping)框架,它将 Java 对象与数据库表映射,简化了数据库交互的过程。通过 Configuration 配置对象读取 ...
- **性能**:在数据库层面,`Set`映射通常会导致主键外键约束,能有效避免数据冗余,提高数据完整性,但在查询时可能需要额外的JOIN操作。 2. **使用List的场景和特点** - **有序性**:`List`保持了元素的插入...
在Java开发中,Hibernate是一个流行的持久化框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库交互。本篇主要讨论的是Hibernate的更新操作。 在Hibernate中,更新操作通常涉及以下几个步骤: ...
**Hibernate基本增删改CRUD操作** 在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句,就能实现对象与关系数据库之间的映射。本教程将深入讲解如何使用...
下面我们将深入探讨Hibernate对BLOB和CLOB的操作。 首先,我们来看一下如何在数据库中创建包含BLOB和CLOB字段的表。例如,以下SQL语句创建了一个名为`users`的表,其中`uids`为主键,`img`为BLOB类型,`txt`为CLOB...
Java使用Hibernate操作数据库是现代Java应用中常见的技术实践,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库的交互。它允许开发者用Java对象来表示数据库中的记录,而无需关心底层SQL的实现...
10. **集合映射**:Hibernate支持多种集合类型(如List、Set、Map等)与数据库表中的多对一、一对多、多对多关系的映射。 11. **事件监听器**:Hibernate允许注册事件监听器,对持久化对象的各种操作(如保存、更新...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它简化了与数据库交互的过程,使得开发者可以使用面向对象的方式来操作数据库。对于Oracle数据库的支持,Hibernate提供了专门的驱动和配置,使得...
9. **集合映射**:Hibernate支持多种集合类型的映射,如List、Set、Map等,以及一对一、一对多、多对一、多对多的关系映射。 10. **Oracle数据库支持**:Hibernate可以与多种数据库配合使用,包括Oracle。使用...
在Java的持久化框架中,Hibernate是一个非常重要的工具,它为开发者提供了强大的对象关系映射(ORM)功能,使得数据库操作变得更为简单。本篇主要围绕"hibernate的表关联操作"展开,通过映射关系来实现对实体类的增...
10. **一对多、多对一、一对一和多对多关系映射**:Hibernate支持多种关联映射,包括集合映射,如List、Set、Map等,以及复合主键的处理。 11. **继承映射**:在Java中,子类可以继承父类。在Hibernate中,这种继承...
### 在Hibernate中的数据库操作 #### Hibernate简介 Hibernate是一种开源的对象关系映射(ORM)框架,用于Java环境下的数据库操作。它允许开发人员将Java对象映射到关系型数据库中的表,并支持面向对象的方法来处理...
通过Hibernate,开发者可以将Java对象映射到数据库表,从而实现对数据库的操作,而无需直接编写SQL语句。这使得Java程序在处理数据库时更具有面向对象的特性,同时也提高了开发效率。Hibernate作为一个轻量级的Java ...
本主题主要聚焦于如何利用Hibernate处理集合类型的属性,包括Set、List和Map。这些集合类型的映射允许我们在一个实体类中存储多个相关联的数据项,从而实现一对多或多对多的关系。 首先,Set是不包含重复元素的集合...
在IT行业中,Spring和Hibernate是两个非常重要的框架,Spring是一个全面的后端开发框架,而Hibernate则是一个对象关系映射(ORM)工具,主要用于数据库操作。当我们将它们整合在一起时,可以实现强大的数据访问能力...
**Hibernate 框架搭建与数据库操作详解** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了 Java 应用程序与数据库之间的交互。在这个教程中,我们将逐步介绍如何搭建 Hibernate 框架,并进行基本的...
在Java应用中,通过Hibernate,开发者可以将数据库操作抽象成对象模型,使得代码更加简洁,同时减少了与SQL的直接交互,提高了开发效率。 ## Hibernate概述 1. **ORM框架**:ORM是Object-Relational Mapping的缩写...