与 JPA(Hibernate) 的 JTA 事务

发布于 2025-01-04 01:26:41 字数 953 浏览 1 评论 0原文

如果我在 persistence.xml 中使用 transaction-type="RESOURCE_LOCAL" 那么我可以通过使用以下属性来避免使用非 jta-data-source:

<properties>
  <property name="hibernate.bytecode.use_reflection_optimizer" value="false"/>
  <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
  <property name="hibernate.connection.password" value="passsample"/>
  <property name="hibernate.connection.url" value="jdbc:oracle:thin:urlsample"/>
  <property name="hibernate.connection.username" value="usersample"/>
  <property name="hibernate.default_schema" value="schemasample"/>
  <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>        
</properties>

问题是如果我使用 transaction-type="JTA" 那么是强制性的使用 jta 数据源? 如果是强制性的请告诉我为什么? 如果不是我需要做什么?

我正在尝试使用 glassfish 配置应用程序,并且在外部数据源(在 glassfish 中配置)下一切正常,但我想在 spring 中并在属性的帮助下配置所有内容。

有什么解决办法吗?

If I use in persistence.xml a transaction-type="RESOURCE_LOCAL" then I can avoid using a non-jta-data-source by using the properties:

<properties>
  <property name="hibernate.bytecode.use_reflection_optimizer" value="false"/>
  <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
  <property name="hibernate.connection.password" value="passsample"/>
  <property name="hibernate.connection.url" value="jdbc:oracle:thin:urlsample"/>
  <property name="hibernate.connection.username" value="usersample"/>
  <property name="hibernate.default_schema" value="schemasample"/>
  <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>        
</properties>

The question is if I use a transaction-type="JTA" then is mandatory to use a jta-data-source ?
If is mandatory please tell me why ?
If not what I need to do ?

I am trying to configure an application with glassfish and everything works fine with an external datasource (configured in glassfish), but I would like to configure everything in spring and with the help of properties.

Any solution for this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巷雨优美回忆 2025-01-11 01:26:41

对于JTA事务类型,您必须定义。但如果您使用 RESOURCE_LOCAL(非 JTA),则它是

如果未指定,JTA 是默认事务类型。这些元素用于指定数据源,通常是用于引用数据源的全局 JNDI 名称。

JTA中的事务可以跨多个持久单元/数据库&外部环境(如 JMS)。通常,JTA 用于 Java EE 和 Java EE。 RESOURCE_LOCAL 用于 Java SE 环境。

For JTA transaction type, you have to define <jta-data-source>. But if you are using RESOURCE_LOCAL(non-JTA), then it is <non-jta-data-source>.

JTA is the default transaction type, if none is specified. These element is used to specify the data source, generally a global JNDI name for referencing the data source.

Transaction in JTA can traverse across multiple persistent units/databases & external environment (like JMS). Typically, JTA is used in Java EE & RESOURCE_LOCAL is used in Java SE environment.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文