【问题标题】:How to setup the collection name at runtime using Spring data MongoRepository如何在运行时使用 Spring 数据 MongoRepository 设置集合名称
【发布时间】:2014-06-22 20:58:36
【问题描述】:

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

现在,我遇到了一个问题,因为我现在有多个 Product Sales 集合,而不是一个集合,每个集合都包含一个产品。所有集合结构仍然相同,但现在每个集合名称类似于“Sales_123”、“Sales_456”,其中数字后缀是产品 ID。

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

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

还是使用 mongoTemplate 重写整个内容更好?

【问题讨论】:

  • 也许这是您的问题mongorepository.codeplex.com/discussions/456452的答案。但是,如果您需要更灵活地使用存储库和集合配置,则可以使用 mongoTemplate。 stackoverflow.com/a/17010650/3568708
  • 谢谢,这些链接非常有用。我已经通过使用允许指定集合的​​ Spring mongo 操作解决了我的问题(您为 mongodb 提供的第一个链接显示了这些方法,因此发现它们也暴露在 spring mongo 中)。
  • 我添加了我的存储库 impl 类,但不允许 Spring 自动为该 repo 实现任何东西,因为它不正确,因为 Spring 将添加的实现不会知道正确的集合名称

标签: spring mongodb repository spring-data


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    相关资源
    最近更新 更多