【问题标题】:Having multiple sessionFactory instances拥有多个 sessionFactory 实例
【发布时间】:2017-07-13 07:39:43
【问题描述】:

我正在将旧应用程序移植到 hibernate 5,但我在登录阶段遇到了问题。这是它的工作原理(我无法更改):

  • 用户最初使用通用登录名/密码(所有用户相同)连接到 oracle DB
  • 然后用户运行“登录”存储过程并输入唯一密码作为参数
  • 该过程将特定的 Oracle DB 用户名/密码返回给用户
  • 用户断开与数据库的连接并使用存储过程提供的凭据重新连接

我目前为每个连接的用户创建一个 sessionFactory 实例,但我担心这会影响性能。有没有更好的方法来做到这一点?

谢谢

【问题讨论】:

  • 你看过stackoverflow.com/questions/14411860/…。它解释了必须实现工厂设计模式的优点。
  • 是的,谢谢。但是如何拥有一个具有不同登录名/密码的会话工厂实例?
  • 这与stackoverflow.com/questions/7520583/… 的问题基本相同,除了使用多个 SessionFactories 之外似乎没有其他方法...
  • > 但我担心这会影响性能。你怎么知道它会影响性能?话虽如此,如果您正确配置SessionFactory,则无需担心。 > 有没有更好的方法来做到这一点?不。正如其他人和上面的链接所提到的,每个SessionFactory 一个用户是满足您要求的正确方法。

标签: oracle hibernate


【解决方案1】:

Hibernate Multitenancy 使用“单独的数据库”策略即使您实际上连接到同一个数据库但不同的凭据也可以工作。 必须指定MultiTenantConnectionProvider 才能返回正确的用户名和密码的连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    相关资源
    最近更新 更多