当前位置: 首页 > 面试题库 >

在纯JPA设置中获取数据库连接

秦博达
2023-03-14
问题内容

我们有一个JPA应用程序(使用hibernate),我们需要将调用传递给需要JDBC数据库连接作为参数的旧式报告工具。有没有一种简单的方法可以访问hibernate已设置的JDBC连接?


问题答案:

您想在哪里获得该连接尚不清楚。一种可能是从.NET Session使用的基础Hibernate中获取它EntityManager。使用JPA
1.0,您必须执行以下操作:

Session session = (Session)em.getDelegate();
Connection conn = session.connection();

请注意,该getDelegate()方法不是可移植的,此方法的结果特定于实现:上面的代码在JBoss中有效,对于GlassFish,您必须对其进行调整-
请看一下使用EntityManager.getDelegate()时要小心。

在JPA 2.0中,情况要好一些,您可以执行以下操作:

Connection conn = em.unwrap(Session.class).connection();

如果您在容器中运行,还可以在configure上执行查找DataSource



 类似资料:
  • 我有两个实体和,如下所述。 我正在使用JPA标准API(Hibernate是JPA实现),我需要实例加载到中。缺省情况下,这是急切地获取的,但我希望使用内部联接来获取,而不是为的每个实例使用单独的select语句。我成功地添加了针对的内部联接。 虽然我可以从日志中的SQL中看到为FOO_DERIVED_VW添加了内部联接,但没有选择任何列。对于的每个实例,我仍然需要有一个单独的select语句来获

  • 我有两张桌子,彼此相连。我如何使用Spring数据jpa从数据库中获取它们? 代码如下, 结果:结果

  • 我做过这样的事情: 这很好,因为如果没有设置参数(不在url中),默认的宽度和高度设置为< code>0。没关系。但是如果我改变这个或者我在url中设置一些值,然后按enter键,什么都不会改变。我的意思是,如果我< code>console.log it -值设置正确,但是DOM不受影响。一点变化都没有。这太奇怪了...

  • 我需要在spring批处理作业的步骤中动态设置块大小,该步骤存储在数据库中,即需要从数据库中获取块大小并将其设置到bean中。 我的问题是: 从ID='some_id_param_value'的SOME_TABLE_NAME选择CHUNK_SIZE 在这里,的值将来自作业参数,该参数是通过与请求一起传递到 它无法从访问“chunk”键值,因此引发。是否需要以某种方式对其进行升级,以便可以在step

  • 本文向大家介绍JDBC如何获取数据库连接,包括了JDBC如何获取数据库连接的使用技巧和注意事项,需要的朋友参考一下 JDBC(Java Database Connectivity),即Java数据库连接。通过JDBC编程,可以使Java应用程序和数据库进行交互。 JDBC驱动的方式有很多种,我们常用的驱动方式为:本地协议的纯Java驱动程序。 JDBC编程的第一步,就是要获取数据库连接。所谓的 “

  • 问题内容: 我正在尝试使用JNDI为Spring Web应用程序设置数据库连接属性。 我正在考虑以下两种方法: 方法1: 在你的Spring配置中,你可能会有类似以下内容: 然后,在你的webapp /META-INF/context.xml文件中,你也应该具有类似的内容: 在你的web.xml中,你应该像这样: 方法二: 在Spring上下文中这样设置: 你可以使用类似下面的命令在Tomcat的