Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与JPA的JTA事务(Hibernate)_Hibernate_Jpa_Jta - Fatal编程技术网

与JPA的JTA事务(Hibernate)

与JPA的JTA事务(Hibernate),hibernate,jpa,jta,Hibernate,Jpa,Jta,如果在persistence.xml中使用事务类型=“RESOURCE\u LOCAL”,则可以通过使用以下属性避免使用非jta数据源: <properties> <property name="hibernate.bytecode.use_reflection_optimizer" value="false"/> <property name="hibernate.connection.driver_class" value="oracle.jdbc.Or

如果在persistence.xml中使用事务类型=“RESOURCE\u LOCAL”,则可以通过使用以下属性避免使用非jta数据源:

<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>

问题是,如果我使用事务类型=“JTA”,那么必须使用JTA数据源吗? 如果是强制性的,请告诉我为什么? 如果不是,我需要做什么

我正在尝试用glassfish配置一个应用程序,所有的东西都可以通过外部数据源(在glassfish中配置)正常工作,但是我想在spring中配置所有东西,并借助属性


有没有解决方案?

对于
JTA
交易类型,您必须定义
。但是如果您使用的是
资源\u LOCAL
(非JTA),那么它就是

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


JTA中的事务可以跨多个持久单元/数据库和外部环境(如JMS)进行遍历。通常,
JTA
在Java EE中使用&
RESOURCE\u LOCAL
在Java SE环境中使用。

我的问题实际上是:为什么在使用RESOURCE\u LOCAL事务类型时,通常我应该有一个非JTA数据源,但正如我所描述的,我仍然有可能使用这些属性,并且仍然能够在没有数据源的情况下连接到我的数据库。是否有可能使用JTA事务类型?要仅使用属性而不使用数据源连接到数据库?@Mirea前面已经提到,RESOURCE_LOCAL和non-jta是相同的。JTA是特定于供应商的,由集装箱负责。您正在尝试直接连接数据库,而不使用数据源。在JTA中,您在配置文件中提到了所有这些属性&此后它的容器的责任,也建议使用datasource。