如果我在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-data-source? 如果是强制性的请告诉我原因? 如果不是我需要做什么?
我正在尝试使用glassfish配置应用程序,一切都可以正常使用外部数据源(在glassfish中配置),但我想在spring中配置所有内容并在属性的帮助下。
对此有何解决方案?
答案 0 :(得分:1)
对于JTA
交易类型,您必须定义<jta-data-source>
。但是,如果您使用的是RESOURCE_LOCAL
(非JTA),那么它是<non-jta-data-source>
。
如果未指定,则JTA是默认事务类型。这些元素用于指定数据源,通常是用于引用数据源的全局JNDI名称。
JTA中的事务可以遍历多个持久性单元/数据库&amp;外部环境(如JMS)。通常,JTA
用于Java EE&amp; {SE}环境中使用RESOURCE_LOCAL
。