merge() returns the updated or 'merged' instance.
So please try this and see if that works...
public void remove(Object entity) {
try {
EntityManager em = this.getEm();
Object merged = em.merge(entity);
em.remove(merged);
} catch (Throwable t) {
t.printStackTrace();
}
}
Scherer, Annette wrote:
>
> 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
>
>
>
-----
Pinaki
--
View this message in context:
http://n2.nabble.com/update-an-remove-in-distributed-environments-tp3343960p3345291.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.