2017-05-31 4 views
0

Nous devons remplacer les propriétés définies par l'utilisateur des détails de la base de données par la balise JTA à l'aide d'Eclipse Link. J'ai le persistence.xml ci-dessous fonctionnant avec des valeurs de DB.Comment utilisez-vous JTA dans EclipseLink?

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

Je sais comment parvenir à utiliser ce JTA avec Hibernate

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

Mais ici, je dois avec lien Eclipse. Pouvez vous me donner un coup de main. Merci d'avance !!

+0

Quel serveur d'applications utilisez-vous? – john

+0

Serveur Weblogic 10.3.6 – user1111880

Répondre

0

Comme vous utilisez le serveur weblogic, vous pouvez utiliser datasource. J'utilise 12c et j'ai la persistance.xml ci-dessous, cela peut vous aider.

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

Je sais comment y parvenir en utilisant ce JTA avec Hibernate [...] Mais ici, je dois avec lien Eclipse.

En utilisant les données gérées JTA sources est assez standard et juste changer la classe de fournisseur de persistance devrait être suffisant, aucune propriété ne doit être exigé pour le faire fonctionner:

<persistence-unit name="PU" transaction-type="JTA"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <jta-data-source>jdbc/MyDataSource</jta-data-source> 
    ... 
</persistence-unit> 

Bien sûr, vous devez être sûr un DataSource est configuré et accessible via JNDI dans votre serveur d'applications et utilise le même nom dans la propriété <jta-data-source/>.

Jetez un oeil à la section DataSource Objects and Connection Pools du tutoriel JEE pour plus de détails.

1

La documentation officielle EclipseLink fournit un bon tutorial page pour ce scénario dans un serveur d'applications WebLogic 10.x.

La configuration et la liaison à un DataSource impliquent fondamentalement trois étapes de configuration. Ce sont:

  1. Fournissez une définition de la source de données dans un fichier de configuration *-jdbc.xml. (dans le fichier EAR)
  2. Fournissez un extrait de configuration de module JDBC à la configuration de l'application WebLogic au /META-INF/weblogic-application.xml du fichier EAR.
  3. Modifiez l'unité de persistance JPA pour utiliser la source de données de l'application, par exemple: <jta-data-source>java:/app/jdbc/SimpleAppScopedDS</jta-data-source>. Ensuite, définissez transaction-type="JTA" au lieu de "RESOURCE_LOCAL" (dans un EJB)

Pour plus de détails, s'il vous plaît se référer à des exemples de configuration du tutoriel ci-dessus.

Espérons que ça aide.