Java 如何测试覆盖解决方案;N+;1“;ORM问题?

Java 如何测试覆盖解决方案;N+;1“;ORM问题?,java,hibernate,jpa,junit,Java,Hibernate,Jpa,Junit,我通过在许多实体上添加大量注释(如@NamedEntityGraph和@Fetch(FetchMode.JOIN))等)解决了代码中的N+1问题,并且 Hibernate的属性(例如MAX_FETCH_DEPTH) 如何为这段新代码编写junit测试?我将H2用于涉及JPA的所有其他测试。加载实体,关闭会话,然后断言访问状态不会崩溃 话虽如此,这是一个完美的用例 我创建了这个库,以便在JPA模型和自定义接口或抽象类定义的模型之间进行简单的映射,类似于类固醇上的Spring数据投影。其思想是以您喜

我通过在许多实体上添加大量注释(如
@NamedEntityGraph
@Fetch(FetchMode.JOIN)
)等)解决了代码中的N+1问题,并且 Hibernate的属性(例如MAX_FETCH_DEPTH)


如何为这段新代码编写junit测试?我将H2用于涉及JPA的所有其他测试。

加载实体,关闭会话,然后断言访问状态不会崩溃

话虽如此,这是一个完美的用例

我创建了这个库,以便在JPA模型和自定义接口或抽象类定义的模型之间进行简单的映射,类似于类固醇上的Spring数据投影。其思想是以您喜欢的方式定义目标结构(域模型),并通过JPQL表达式将属性(getter)映射到实体模型

您不需要考虑实体级的实体图或获取策略,如果您有多个用例,这可能会很困难,但您可以专注于创建适当的DTO,以完全暴露您真正需要的状态

Spring数据集成允许您像使用Spring数据投影一样使用它: