我们需要使用Eclipse Link将数据库详细信息的用户定义属性替换为JTA标记。我有以下persistence.xml使用DB值。
<?xml version="1.0" encoding="UTF-8"?>
<persistence xsi:SchemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit transaction-type="RESOURCE_LOCAL" name="UTILITY">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>ae.du.selfcare.utility.jpa.SelfcareJmsCreatett</class>
<properties>
<property name="eclipselink.logging.level" value="FINEST"/>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:Oracle:thin:@IMP1SCDVDB1:1524:SCRTQC2"/>
<property name="javax.persistence.jdbc.user" value="******"/>
<property name="javax.persistence.jdbc.password" value="********"/>
<property name="eclipselink.connection-pool.default.initial" value="1"/>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
<property name="eclipselink.ddl-generation.output-mode" value="database"/>
</properties>
</persistence-unit>
</persistence>
我知道如何在Hibernate中使用这个JTA
<persistence-unit name="PU" transaction-type="JTA">
<jta-data-source>java:jboss/datasources/Hanse</jta-data-source>
<class>model.Commodity</class>
<class>model....</class>
<class>model....</class>
<properties>
<!-- <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"/> -->
<!-- <property name="hibernate.hbm2ddl.auto" value="update" /> -->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<!-- <property name="hibernate.show_sql" value="true" /> -->
<property name="hibernate.enable_lazy_load_no_trans" value="true"/>
</properties>
</persistence-unit>
但是在这里,我需要使用Eclipse链接。你能帮帮我吗? 在此先感谢!!。
答案 0 :(得分:1)
官方 EclipseLink 文档为WebLogic 10.x应用程序服务器中的此方案提供了一个很好的tutorial page。
配置和绑定到DataSource基本上涉及三个配置步骤。这些是:
*-jdbc.xml
配置文件中提供数据源的定义。 (在EAR内)/META-INF/weblogic-application.xml
中的WebLogic应用程序配置提供JDBC模块配置代码段。<jta-data-source>java:/app/jdbc/SimpleAppScopedDS</jta-data-source>
。接下来,设置transaction-type="JTA"
而不是"RESOURCE_LOCAL"
(在EJB中)有关详细信息,请参阅上述教程的配置示例。
希望它有所帮助。
答案 1 :(得分:0)
当您使用weblogic服务器时,您可以使用数据源。我正在使用12c,我有以下persistance.xml,这可能会对你有帮助。
<?xml version="1.0" encoding="windows-1252" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="WebService" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/MyDataSource</jta-data-source>
<class>model.HrAddressL1L2DataV</class>
<class>model.HrJobsLookupV</class>
<properties>
<property name="eclipselink.target-server" value="WebLogic_10"/>
<property name="javax.persistence.jtaDataSource"
value="jdbc/MyDataSource"/>
</properties>
</persistence-unit>
</persistence>
答案 2 :(得分:0)
我知道如何在Hibernate中使用这个JTA [...]但是在这里,我需要使用Eclipse链接。
使用JTA托管数据源非常标准,只需更改持久性提供程序类就足够了,不需要特殊属性就可以使其工作:
site-packages/django/db/models/manager.py
当然,您需要确保在应用程序服务器中通过JNDI配置和访问DataSource,并在<persistence-unit name="PU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/MyDataSource</jta-data-source>
...
</persistence-unit>
属性中使用相同的名称。
请查看JEE教程的DataSource Objects and Connection Pools部分以获取更多详细信息。