gpt4 book ai didi

java - 在 Spring Boot JPA 测试中仅包含单个实体

转载 作者:行者123 更新时间:2023-11-28 21:26:33 25 4
gpt4 key购买 nike

我正在尝试通过快速启动 spring boot 项目以生成一个平台来将数据插入 H2 数据库、对其运行查询并验证这些查询的结果,从而在单独的项目实体中测试 jpa 查询。

因为单独的项目有一个很大的实体库,我想有选择地挑选出每次测试我想要的实体。

我已经尝试为此使用 @EntityScan 注释,但它似乎旨在提取整个包,即使您只指定一个类也是如此。

这让我觉得一定有解决方案,但到目前为止我还找不到它。

最佳答案

问题在于,当您使用 Spring 上下文设置测试类时,该类中的所有测试都存在该上下文,除非您使用 @DirtiesContext 或其他技巧使其重建本身。

@EntityScan(basePackageClasses = MyEntity.class)

上面的代码并没有告诉Spring使用MyEntity,而是告诉它开始在MyEntity所在的包中搜索实体。它也是递归的,所以如果你有例如:

com.example.entities.MyEntity
com.example.entities.subpackage.MyOtherEntity

它会选择 MyEntity MyOtherEntity。但是,如果您像这样编写 EntityScan:

@EntityScan(basePackageClasses = MyOtherEntity.class)

那么 MyEntity被发现。

考虑到这一点,我对您的唯一建议可能是将您的大量实体分组到多个较小的子包中,以便更容易加载,如果一次加载所有实体对您来说确实是一个阻碍。

关于java - 在 Spring Boot JPA 测试中仅包含单个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39109339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com