Hello,

I am using OpenJPA in a client/server environment.
I need to persist, find or query an object, update it and remove it.

How can I do this? As explained in OpenJPA's Manual Part 2, Chapter 8.2, I 
tried to merge the object bevor removing it. But this doesn work. 

This is my example:

Client:

TestObject test = new TestObject();
test.setNumber(22);
test.setName("Test22");
Class testClass = test.getClass();

try{
        ... sessionBeanHome.persist(test);
} catch (Throwable e) {
        System.out.println(e.getMessage());
}

TestObject testRead = null;
try {
        testRead = (TestObject)... sessionBeanHome.find(testClass, 
test.getNumber());
} catch (Throwable e) {
        System.out.println(e.getMessage());
}
                
try {
        ... sessionBeanHome.remove(testRead);
} catch (Throwable e){
        System.out.println(e.getMessage());
}



Server (2.1 SessionBean):

public void persist(Object entity) {
        try {
                this.getEm().persist(entity);
        } catch (Throwable t) {
                t.printStackTrace();
        }
}
        

public Object find(Class entityClass, Object primaryKey) {
        Object result = null;
        try {
                result = this.getEm().find(entityClass, primaryKey);
        } catch (Throwable t) {
                t.printStackTrace();
        }
        return result;
}

public void remove(Object entity) {
        try {
                EntityManager em = this.getEm();
                em.merge(entity);
                em.remove(entity);
        } catch (Throwable t) {
                t.printStackTrace();
        }
}       
                

My persistence.xml

<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_1_0.xsd";
        version="1.0">
        <persistence-unit name="Test_DB">
                <provider>
                        org.apache.openjpa.persistence.PersistenceProviderImpl
                </provider>
                <jta-data-source>java:comp/env/jdbc/testdb</jta-data-source>
                <class>de.huk.vtp.selektionen.bo.TestObject</class>
                <properties>
                        <property name="openjpa.TransactionMode" 
value="managed"/>
                        <property name="openjpa.ConnectionFactoryMode" 
value="managed"/>
                        <property name="openjpa.jdbc.DBDictionary" value="db2"/>
                        <property name="openjpa.jdbc.Schema" value="T7"/>
                </properties>
        </persistence-unit>
</persistence>



Thank you for advice

Annette Scherer
Abteilung Informatik

Reply via email to