当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring data MongoRepository在运行时设置集合名称

顾超
2023-03-14

我写了一个应用程序,使用Spring MongoRepository连接到产品销售的集合,其中包含所有产品的销售数据。

现在,我面临一个问题,因为我现在有多个产品销售集合,而不是一个集合,每个集合包含一个产品。所有集合的结构仍然相同,但现在每个集合的名称类似于“Sales_123”、“Sales_456”,其中数字后缀是产品Id。

这意味着我不能再使用文档注释来指定集合名称。我仍然可以在运行时将集合名称传递给MongoRepository吗?

也许,有没有可行的方法来插入修改后的MappingMongoEntityInformation,我可以通过某种方式将集合名称传递给它?

还是使用mongoTemplate重新编写整个过程更好?

共有1个答案

怀刚毅
2023-03-14

发布一个答案会恢复这个旧的讨论,但是我已经在另一个我复活的讨论中回答了这个问题。我也在这里发布了一个答案的链接,以防有人找到这个旧线程。看看https://stackoverflow.com/a/65036567/8031498我描述了如何使用spl指定集合名称。

 类似资料:
  • 我正在寻找一种在testng运行期间设置启动名称的方法。这在配置(rp.launch)中另有设置。我需要为每个testng运行设置一个自定义启动名称。我正在使用代理java testng:4.0.0-BETA-1 我尝试了建议的替代方法,但找不到此处提到的类-ConfigurationModule 我有一个自定义侦听器(ReportPortalTestNGListener),我正在将其添加到Tes

  • 问题内容: 我需要禁用IPv6。为此,Java文档指示设置jvm属性。 但是我不了解如何从代码本身做到这一点。 许多论坛都演示了如何从命令提示符下执行此操作,但是我需要在运行时执行此操作。 问题答案: 您可以使用 这等效于通过以下命令在命令行中传递它

  • 问题内容: 我有一个问题,我只能使用一个数据库,但我有多个服务器,希望它们为每个服务器使用不同的表名。 现在,我的班级配置为: 我希望能够使dev1服务器指向loader_queue_dev1表,例如dev2服务器指向loader_queue_dev2表。 有没有可以使用注释或不使用注释的方法? 我希望能够拥有一个单一的构建,然后在运行时使用诸如系统属性之类的东西来更改该表名。 问题答案: 对于H

  • 我正在使用带有Hikari CP的Spring Boot2.0.1并希望使用应用程序属性来设置Hikari数据源属性,如连接超时、最大池大小等,但用户名和密码应该在运行时设置。我在下面进行了尝试,但当数据源创建时,它没有我试图设置的连接超时值。 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-c

  • 我正在使用Spring数据为我的应用程序获取数据。 repository类使用mongo实体类,该实体类作为上游依赖项添加到我的项目中,这意味着我无法控制更改该类的源代码。因此,我无法使用组织中的文档注释。springframework。数据mongodb。果心映射到我的mongo实体类。 在这里,我对Dummy类的源代码没有任何控制权,因此我无法添加文档来指定该类的集合名称 如何在使用查询mon

  • 问题内容: 除了a 和Java 可以两次包含相同的元素外,a 和Java 之间在实践上还有什么区别吗?它们具有相同的方法。 (例如,是否给我更多选择来使用接受s但不接受s的库?) 编辑: 我可以认为至少有5种不同的情况来判断这个问题。其他人还能提出更多建议吗?我想确保我了解这里的微妙之处。 设计接受或参数的方法。更通用,并接受更多输入可能性。(如果我正在设计特定的类或接口,那么对我的消费者会更好,