如何解决如何测试发现ORM的“ N + 1”问题的解决方案?
我通过在许多实体上添加很多注释(例如@NamedEntityGraph
和@Fetch(FetchMode.JOIN)
等)解决了代码中的N + 1问题,并且
休眠的属性(例如MAX_FETCH_DEPTH)。
如何为此新代码编写junit测试?我正在对涉及JPA的所有其他测试使用H2。
解决方法
加载实体,关闭会话,然后断言访问状态不会崩溃。
话虽如此,这是Blaze-Persistence Entity Views的完美用例。
我创建了该库,以允许在JPA模型与自定义接口或抽象类定义的模型之间轻松进行映射,例如类固醇上的Spring Data Projections。这个想法是,您可以按自己喜欢的方式定义目标结构(域模型),并通过JPQL表达式将属性(获取器)映射到实体模型。
您无需考虑实体级别的实体图或获取策略,如果您有多个使用案例,无论如何这可能会很困难,但是您可以专注于创建适当的DTO,以完全暴露您真正需要的状态。
Spring Data集成使您可以像使用Spring Data Projections一样使用它:https://persistence.blazebit.com/documentation/entity-view/manual/en_US/index.html#spring-data-features
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。