【问题标题】:Can define the database name beside the table when using query DSL?使用查询 DSL 时可以在表旁边定义数据库名称吗?
【发布时间】:2021-11-26 15:32:23
【问题描述】:

我们可以在实体名称旁边定义数据库,而不是每次在多租户应用程序中获取数据时切换到特定架构吗?

例如:-

QEntity qEntity = QEntity.entity;
JPAQueryFactory queryFactory = new JPAQueryFactory(em);
queryFactory.from(database_name+qEntity).select(qEntity.id,....)

【问题讨论】:

    标签: java mysql spring querydsl


    【解决方案1】:

    创建 QueryFactory 时,通常会通过不同的 EntityManager 提供不同的数据库。要通过不同的模式实现多租户,您可以查看https://www.baeldung.com/hibernate-5-multitenancy 中描述的替代方案。

    无法在 JPQL 本身或 HQL 中查询特定的数据库或架构 - 或查询任何未映射为实体的表 - 因此使用 Querydsl 为您生成 JPQL 或 HQL 具有相同的限制.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多