【问题标题】:Spring Data JDBC - Autowire Repository object dynamicallySpring Data JDBC - 动态自动装配存储库对象
【发布时间】:2021-04-20 20:59:28
【问题描述】:

我正在使用 Spring Data JDBC。

我通常使用自动连接的特定存储库对象并执行必要的操作。

让我们考虑一下,我有属于特定大陆的员工。

我们为每个大洲都有一个存储库。

从employee表中取出数据后,根据他的洲值,需要初始化具体的洲reporisotory。

您能指导我如何动态创建存储库对象吗?

【问题讨论】:

  • 或者您可以创建一个包含所有存储库的服务,并使用员工信息来决定调用哪个。不明白为什么需要动态创建存储库。
  • 谢谢。但实际用例是主表包含子表的名称作为属性之一。目前,我们有 400 多个子表。在服务类中创建 400 多个存储库不是一个可行的选择。
  • 有没有办法创建 SimpleJdbcRepository?
  • 始终建议使用单一职责。现在可能需要付出一点额外的努力,但它会给你带来很好的回报。
  • 我认为stackoverflow.com/a/19443031/66686 适用(Spring Data JDBC 和 JPA 确实如此)

标签: spring spring-data-jdbc


【解决方案1】:

至少暗示逐字问题的答案: 看看JdbcRepositoryFactoryBeanJdbcRepositoryFactoryBeanUnitTest

但我认为这不会解决你的问题,也不会朝那个方向发展。

JdbcAggregateTemplate 可能对您有所帮助。很难说,因为你很少分享你真正想要实现的目标。

一般而言,Spring Data 不是为自引用的数据模型构建的,即在运行时从数据模型本身获取表或列名的地方。在这种情况下,创建自己的存储库实现可能会更好,这会考虑到您的特殊用例,但仅限于您需要的确切功能,而这些功能通常被充分限制为可维护。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 2017-05-22
    • 2017-03-28
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多