首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当在测试方法中声明@Transaction时,为什么不以多对多关系持久化连接表呢?

在测试方法中声明@Transaction时,为什么不以多对多关系持久化连接表呢?

在测试方法中声明@Transaction时,多对多关系持久化连接表的实现可以有多种方式,但是通常不建议在测试方法中使用多对多关系持久化连接表。原因如下:

  1. 复杂性:多对多关系持久化连接表涉及到额外的表和关联查询,增加了系统的复杂性和难度。在测试方法中使用多对多关系持久化连接表可能会导致代码变得更加复杂,难以理解和维护。
  2. 重复性:在测试方法中,我们通常关注的是方法的独立性和可重复性。使用多对多关系持久化连接表可能会导致数据重复插入和重复查询的问题,这与测试方法的初衷相悖。
  3. 效率问题:多对多关系持久化连接表可能会增加数据库查询的复杂性和性能开销。在测试方法中,我们通常需要追求高效的测试执行速度,因此选择更简单和直接的持久化方式可能更为合适。

替代方案: 如果需要在测试方法中模拟多对多关系,可以考虑使用临时数据或者模拟数据来实现。可以通过创建临时对象、使用内存数据库或者模拟数据工具来模拟多对多关系,以满足测试需求。

总结: 在测试方法中使用多对多关系持久化连接表可能会增加复杂性、重复性和性能开销。为了保证测试方法的独立性和可重复性,建议选择更简单和直接的持久化方式或者使用临时数据来模拟多对多关系。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SqlAlchemy 2.0 中文文档(十三)

批量 INSERT 语句 - 在 ORM 查询指南中 一 - 在基本关系模式 集合 对于一个集合,两个类之间的关系涉及一个使用relationship.secondary参数配置的第三个的情况...给定项将在下一个刷新以父实例的集合的形式持久到数据库。...给定的项将在下一个刷新以父实例的集合的形式持久到数据库。...批量插入语句 - 在 ORM 查询指南中 一 - 在基本关系模式 集合 对于集合,两个类之间的关系涉及第三个,该使用relationship.secondary参数配置relationship...批量插入语句 - 在 ORM 查询指南 - 在 基本关系模式 集合 对于集合,两个类之间的关系涉及使用 relationship.secondary 参数配置的第三个的情况

10410

Hibernate总结以及在面试的一些问题.

1.为什么要使用Hibernate开发你的项目?Hibernate的开发流程是怎么样的?...为什么要使用 ①.JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 ②.Hibernate 是一个基于JDBC的主流持久框架,是一个优秀的ORM 实现。...注:单向one-to-many关联关系,不可以设置inverse="true",因为被控方的映射文件没有主控方的信息。 : 属性在独立。inverse属性的默认值为false。...在多关联关系关系的两端 inverse不能都设为false,即默认的情况是不对的,如果都设为false,在做插入操作时会导致在关系插入两次关系。...当session的save()方法持久一个对象,该对象被载入缓存,以后即使程序不再引用该对象,只要缓存不清空,该对象仍然处于生命周期中。

1.6K120

hibernate笔记加强版「建议收藏」

映射文件里须要映射的关系: 数据库 java的字段名 类的属性名 字段的类型 类属性的类型 关系(一一,一,多等) java面向对象的关系 那么通过此*.hbm.xml...1. java类和数据库须要映射的关系: 数据库 java的字段名 类的属性名 字段的类型 类属性的类型 关系(一一,一,多等) java面向对象的关系 那么通过此...在检查以上2、3步的同一候会检查此持久对象的关联对象(就是有关系的对象(一,多等)),是否有级联操作,假设有就级联操作此关联的对象。还会检查是否对此关联对象运行关系操作。...再创建与还有一个对象关系 关系用MyEclipse通过来创建java类(的反向project),自己主动生成的java类不是关系,而是一个 一和一个 一 java类组合起来的。...在检查以上2、3步的同一候会检查此持久对象的关联对象(就是有关系的对象(一,多等)),是否有级联操作,假设有就级联操作此关联的对象。

94220

Spring Data开发手册|Java持久API(JPA)需要了解到什么程度

JPA,Java Persistence API是Sun官方提出的Java持久规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用关系数据。...它的出现主要是为了简化现有的持久化开发工作和整合ORM技术 ORM:通过使用描述对象和数据库之间映射的元数据,将程序的对象自动持久关系数据库。本质就是将数据从一种形式转换到另外一种形式。...以前的开发模式 JPA是什么 JPA解决了什么问题 JPA的第一个HelloWord程序 详解配置文件 常用的注解 一一的问题 一的问题 的问题 JPA中常见的方法 JPA对象的状态 注意事项...需求:部门和员工的对应 部门----->员工 一的关联关系 代码演示: 声明部门对象: @Entity @Table public class Dept { @Id @GeneratedValue...需求:一个学生可以被多个老师教,一个老师也可以教多个学生 学生----->老师 一 老师----->学生 一 老师和学生的最终关系 的关联关系

1.3K30

Hibernate学习笔记1

对象-关系映射,是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境的主流开发方法关系数据库是企业级应用环境永久存放数据的主流数据存储系统。...对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存的对象之间存在关联和继承关系,而在数据库关系数据无法直接表达多关联和继承关系。...为什么使用hibernate框架 HibernateJDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码 Hibernate是一个基于jdbc的主流持久框架,是一个优秀的orm实现...这个配置文件的主要作用是建立与类的映射关系。 1.统一声明包名,这样在中就不需要写类的全名 ?...⊙面试题68(加深你栈的理解_让你知道什么是栈) ⊙来测试一下你对数据结构的栈和队列的了解有多少? ⊙面试题63(链表,哈希) ⊙ 请你Java树的了解有多少? ⊙ 这个培训机构怎么?

1.4K60

EJB学习笔记

EJB3.0的JPA(Java持久API) O/R Mapping(对象关系映射) TopLink,JDO,Hibernate 类型对应,属性对应字段,关系对应引用 BO(商业对象,操作数据对象)...”→持久单元的名字 Tips:持久单元(配置文件persistence.xml)的作用: (1) 持久提供者 (2) 持久单元的名字 (3) 设置的生成机制 关于Extended...一关系,在默认情况下,会采用Fetch操作立即加载。 一多关联 一单向关系需要中间。 双向一关系,也要注意(mappedBy=“”)关系维护方的问题。...PERSIST|REFRESH|REMOVE”,fetch=”FetchType.EAGER|LAZY”, mappedBy=””,optional=”true|false”) @JoinTable标注是标识中间对应的信息的...对于双向关系,mappedBy=“”可以放在任意一方,@mappedBy与@JoinTable不能在同一个实体。 @JoinTable所在的实体称为主控方。

1.1K30

MySQL基础

当在删除/更新对应记录,首先检查该记录是否有对应外键,如果有则不允许删除/更新。...(与 RESTRICT 一致) RESTRICT 当在删除/更新对应记录,首先检查该记录是否有对应外键,如果有则不允许删除/更新。...(与 NO ACTION 一致) CASCADE 当在删除/更新对应记录,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表的记录。...SET NULL 当在删除对应记录,首先检查该记录是否有对应外键,如果有则设置子表该外键值为 null(这就要求该外键允许取 null)。...SET DEFAULT 父有变更,子表将外键列设置成一个默认的值(Innodb 不支持) # 多表查询 多表关系:在的一方设置外键,关联一的一方的主键 :建立中间,中间包含两个外键

98730

Hibernate_day02总结

1.2 Hibernate持久对象的状态 1.2.1 持久类的三种状态: 持久类:就是一个Java类与建立了映射关系.这种Java类就称为是持久类....只要 Session 实例没有结束生命周期, 存放在它缓存的对象也不会结束生命周期 当session的save()方法持久一个对象,该对象被载入缓存,以后即使程序不再引用该对象,只要缓存不清空,...的关联关系的映射.(*****) 1.5.1 之间的关系: 一 : * 建原则:在的一方创建一个字段,作为外键指向一的一方的主键.... : * 建原则:创建一个中间,中间至少两个字段.两个字段分别作为外键指向双方的主键....一一 * 建原则: * 唯一外键对应:假设一一是一个一关系.在的一方创建外键指向一的一方的主键.将外键设置为unique. * 主键对应:一个的主键从另一个的主键获得. 1.5.2 Hibernate

1.5K110

SqlAlchemy 2.0 中文文档(五十五)

延迟加载是一种常见的对象关系模式,其中由 ORM 持久的对象维护了与数据库本身的代理,以便当访问对象上的各种属性,可以延迟从数据库检索其值。...当在一或关系上设置“delete-orphan”级联,就会出现这个错误,例如: class A(Base): __tablename__ = "a" id = Column...在 1.3.18 版本更改:当在一或关系上使用“delete-orphan”错误消息,已更新为更具描述性的文本。...从版本 1.3.18 开始更改:当在关系上使用“delete-orphan”,错误消息的文本已更新为更具描述性。...1.3.18 版本的更改:当在一或关系上使用“delete-orphan”,错误消息的文本已更新为更详细的描述。

26310

hibernate官方新手教程 (转载)

最后我们还必须在映射文件面包含须要持久属性的声明。...另外,自己主动生成数据库并导出在单元測试是很实用的。 2.3. 第二部分 - 关联映射 我们已经映射了一个持久实体类到一个上。让我们在这个基础上添加�一些类之间的关联性。...对于(many-to-many)关联(或者叫n:m实体关系), 须要一个用来储存关联的(association table)。表里面的每一行代表从一个person到一个event的一个关联。...当然,数据库定义没有改变,我们仍然须要(many-to-many)的阶数(multiplicity)。...在一个一(one-to-many)关联 它必须是代表(many)的那端。而在(many-to-many)关联,你能够随意选取一端,两端之间并没有区别。 2.4.

1K20

ORM和 Spring Data Jpa

ORM 什么是“持久持久的主要应用是将内存的数据存储在关系型的数据库,当然也可以存储在磁盘文件、XML数据文件中等等。...JPA包含的技术 ORM 映射元数据:JPA 支持 XML 和 JDK 5.0 注解两种元数据的形式,元数据描述对象和之间的映射关系,框架据此将实体对象持久到数据库。...persist 方法执行一次持久操作,最后提交事务,执行完这些操作后,数据库旧多出来一个 t_book ,并且中有一条数据。...3.查询方法流程解析 为什么写上方法名,JPA就知道你想干嘛了?...进行多个 Repository 操作,也应该使它们在同一个事务处理,按照分层架构的思想,这部分属于业务逻辑层,因此,需要在Service 层实现多个 Repository 的调用,并在相应的方法声明事务

3.3K30

Hiberante知识点梳理

为什么要用Hibernate JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 Hibernate是一个基于JDBC的主流持久框架,是一个优秀的ORM实现。...它支持各种关系数据库,从一一到的各种复杂关系。 4....也就是说,如果此对象在数据库不存在的话,就不能使用update()方法。 saveOrUpdate()方法操作的对象既可以使持久化了的,也可以使没有持久的对象。...如果是持久化了的对象调用saveOrUpdate()则会 更新数据库的对象;如果是未持久的对象使用此方法,则save到数据库。 7....POJO的要求 必须有一个无参的构造方法 不能为final 属性要为Private,并且提供get/set 18. inverse 在关系默认为flase 表示为两端都在维护关系 应该改为一端维护关系而不是两端

1.4K00

一篇 JPA 总结

我们在上述代码持久部分测试以下方法,将初始部分代码放入 **@Before** 内,将提交事务部分代码放入 **@After** 内,持久操作方法在 **@Test** 内执行 public...关联关系映射(使用 IDEA 可以使用实体生成,也可以使用对应的额逆向生成实体类) 单向一(orders - customer) 结构(oreders 中有 customer 的外键映射...一映射方法测试 添加数据 /** * n-1 将数据插入,建议先插入一的一端 */ @Test public void testMany2OnePersistence() { CustomerEntity...单向一(company - employee) 结构 ? ? 实体映射 ? ? 关联关系维护 ?...方法测试 保存数据(先保存不维护关联关系的一端,否则会多出 UPDATE 语句) ? 使用 IDEA 反向生成实体(双向一一) ?

5.6K20

Hibernate框架学习之一

所谓的ORM就是利用描述对象和数据库之间映射的元数据,自动把Java应用程序的对象,持久关系型数据库的。通过操作Java对象,就可以完成对数据库的操作。...它支持很多关系型数据库,从一一到的各种复杂关系;     ● 可扩展性强,由于源代码的开源以及API的开放,当本身功能不够用时,可以自行编码进行扩展。...4.创建实体(持久类) 持久类是应用程序的业务实体类,这里的持久是指类的对象能够被持久保存到数据库。...POJO 类包含的是与数据库表相对应的各个属性,这些属性通过 getter 和 setter 方法来访问,对对外部隐藏了内部的实现细节。下面就来编写 Customer持久类。   ...因此,在持久操作后,必须调用 Transaction 接口的 commit ( )方法和rollback( ) 方法

88480

Hibernate框架学习之一

所谓的ORM就是利用描述对象和数据库之间映射的元数据,自动把Java应用程序的对象,持久关系型数据库的。通过操作Java对象,就可以完成对数据库的操作。...它支持很多关系型数据库,从一一到的各种复杂关系;     ● 可扩展性强,由于源代码的开源以及API的开放,当本身功能不够用时,可以自行编码进行扩展。...) 持久类是应用程序的业务实体类,这里的持久是指类的对象能够被持久保存到数据库。...POJO 类包含的是与数据库表相对应的各个属性,这些属性通过 getter 和 setter 方法来访问,对对外部隐藏了内部的实现细节。下面就来编写 Customer持久类。   ...因此,在持久操作后,必须调用 Transaction 接口的 commit ( )方法和rollback( ) 方法。如果没有开启事务,那么每个 Session 的操作,都相相当于一个独立的操作。

1.1K70

Spring·JPA

JPA JPA 即 Java 持久 API(Java Persistence API),是一个用于映射 Java 对象和关系型数据库的规范。...通常情况下在每个应用的“持久单元”只需要一个 EntityManagerFactory。持久单元是通过数据库配置文件归集到一起的一组 JPA 类(不求甚解)。...加载实体,JPA 需要从当前实体映射的所有中加载相应的数据。这种方法减少了存储空间,但从另一方面来看它引入了连接查询,这会显著降低查询速度。...(extends)外,不同实体间也存在各种模型关系,JPA 为建模涉及到的实体/提供了多种关系: OneToOne:在这种关系每个实体只含有一个明确的其它实体的引用;反之亦然。...(ManyToMany) 一个 Geek 可以加入很多项目(Project)而且一个 Project 包含着很多 Geek,所以建模 Project 和 Geek 之间关系设定为 @ManyToMany

3.3K30

hibernate 5.2.6新特性

我们知道,JPA 是通过 JDK5.0 注解或 XML 描述对象 - 关系的映射关系,并将运行期实体对象持久到数据库中去。...领域模型的关联 关联有一一、一多关联,在面向对象的Java,这三种关联都可以很好地表示,一一关联就是单一类的实体,而一多多多关联,包含了的一方要使用集合,一般情况下,都会选择使用Set...JPA JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系的映射关系,并将运行期的实体对象持久到数据库。...JPA的宗旨是为POJO提供持久标准规范,由此可见,经过这几年的实践探索,能够脱离容器独立运行,方便开发和测试的理念已经深入人心了。...总的来说,JPA包括以下3方面的技术: ORM映射元数据 JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和之间的映射关系,框架据此将实体对象持久到数据库; API 用来操作实体对象

1.4K90
领券