【问题标题】:how to pass user created connection to hibernate如何将用户创建的连接传递给休眠
【发布时间】:2010-06-05 05:06:10
【问题描述】:

有什么办法可以限制hibernate不要创建自己的连接(我们在hibernate.properties或hibernate.cfg.xml中定义的),而是我可以创建连接并将其传递给hibernate以进行进一步处理。

问题是我需要在连接上设置 ApplicationContext,因为我正在使用 oracle 连接。我知道如何创建连接并为其设置 applicationContext .. 但问题是我不知道如何强制休眠使用我创建的连接.. 请帮助..

【问题讨论】:

  • 您的用例不清楚。什么是应用程序上下文?春天?您如何为连接设置任何内容,因为它是一个未定义 ApplicationContext 的接口?
  • 嗨 Bozho,你说得对,连接接口没有任何设置应用程序上下文的方法,这里的应用程序上下文在连接方面是用户策略.. 我有一段代码可以正常工作设置用户策略...我可以通过从连接中获取本机 oracle 连接来设置应用程序上下文....然后在本机 oracle 连接上我可以设置应用程序上下文...

标签: java oracle hibernate connection


【解决方案1】:

正确的做法是使用o.h.c.ConnectionProvider 的自定义实现。在getConnection() 方法中,您将有机会将常规Connection 转换为OracleConnection 并在返回之前对其进行暗巫术。

此接口有多个实现,您可以扩展这些实现以简化工作,具体取决于您获取初始连接的方式(例如从数据源)。

Hibernate 论坛中的This post 展示了一个可以用作启动示例的实现(发帖者还使用OracleConnection 进行黑魔法,所以这是一个很好的示例)。

【讨论】:

    【解决方案2】:

    查看 Hibernate 手册的this section

    【讨论】:

    • 我已经尝试过这种方法,但问题是我需要将应用程序上下文添加到连接中,而根据您提到的链接,休眠将再次创建自己的连接..因为我我只是以编程方式处理 hibernate.cfg 或 hibernate.proeprties 文件..
    猜你喜欢
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 2014-08-01
    • 2016-08-26
    相关资源
    最近更新 更多