与JPA的JTA事务(Hibernate)
如果在persistence.xml中使用事务类型=“RESOURCE\u LOCAL”,则可以通过使用以下属性避免使用非jta数据源:与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
<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。