show view Data Source Explorer
new Connection Profile (enter parameters for your schema)
New JPA project
JPA Tools, Generate Entities from Tables
you should have a persistence.xml which contains
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" 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"> <persistence-unit name="ToplinkTest" transaction-type="RESOURCE_LOCAL"> <class>com.osb.reporting.WliQsReportAttribute</class> <class>com.osb.reporting.WliQsReportData</class> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:xe"/> <property name="javax.persistence.jdbc.user" value="DEV_SOAINFRA"/> <property name="javax.persistence.jdbc.password" value="DEV_SOAINFRA"/> <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/> </properties> </persistence-unit> </persistence>
You can now code the client:
package com.osb.reporting.client;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import com.osb.reporting.WliQsReportAttribute;
public class ReportingClient {
public static void main(String[] args) throws ClassNotFoundException {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ToplinkTest");
EntityManager em = emf.createEntityManager();
WliQsReportAttribute result = em.find(WliQsReportAttribute.class, "uuid:0e6fb58fc7c49289:5378b92d:134416bc5f5:-7fbe");
System.out.println(result.getMsgLabels());
Query fa = em.createQuery("select a from WliQsReportAttribute a");
List res = fa.getResultList();
for (Object el : res) {
System.out.println( ((WliQsReportAttribute)el).getMsgLabels());
}
}
}
you will need to add the JDBC driver to the classpath, like
C:\bea1035\wlserver_10.3\server\ext\jdbc\oracle\11g\ojdbc5_g.jar
In WLST, just add to the classpath the location from which you can access classes and META-INF (where persistence.xml is located).... like the build\classes directory.
package com.osb.reporting.client;
from javax.persistence import *
emf = Persistence.createEntityManagerFactory("CMBDModeling")
em = emf.createEntityManager()
q = em.createQuery("select envs from Nesoa2Env envs")
res = q.getResultList()
for i in res:
print i.envname
so the message is: you can easily use JPA in WLST and get rid of all that horrible pain of reading property files, by accessing directly a DB
No comments:
Post a Comment