2
0
Fork 0
imxmi/src/main/java/com/idcanet/vasc/backends/jpa/AbstractPersistenceVascBackend.java

83 lines
2.7 KiB
Java
Raw Normal View History

2007-03-22 00:01:07 +00:00
/*
* Copyright 2004-2007 IDCA. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
* following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and
* the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
* and the following disclaimer in the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the authors and
* should not be interpreted as representing official policies, either expressed or implied, of IDCA.
*/
2008-09-08 00:07:46 +00:00
package com.idcanet.vasc.backends.jpa;
2007-03-22 00:01:07 +00:00
2008-09-08 00:07:46 +00:00
import javax.persistence.EntityManager;
import com.idcanet.vasc.core.AbstractVascBackend;
2009-08-11 18:31:29 +00:00
import com.idcanet.vasc.core.VascException;
2007-03-22 00:01:07 +00:00
/**
*
* @author Willem Cazander
* @version 1.0 Mar 21, 2007
*/
2008-09-08 00:07:46 +00:00
abstract public class AbstractPersistenceVascBackend extends AbstractVascBackend {
2007-03-22 00:01:07 +00:00
2008-09-08 00:07:46 +00:00
abstract EntityManager getEntityManager();
2009-08-11 18:31:29 +00:00
public void persist(Object object) throws VascException {
2008-09-08 00:07:46 +00:00
EntityManager s = getEntityManager();
try {
2009-04-13 17:19:48 +00:00
s.getTransaction().begin();
2008-09-08 00:07:46 +00:00
s.persist(object);
2009-04-13 17:19:48 +00:00
s.getTransaction().commit();
2008-09-08 00:07:46 +00:00
} finally {
if (s!=null) {
2009-04-13 17:19:48 +00:00
//s.close();
2008-09-08 00:07:46 +00:00
}
}
2007-03-22 00:01:07 +00:00
}
2008-09-08 00:07:46 +00:00
2009-08-11 18:31:29 +00:00
public Object merge(Object object) throws VascException {
2008-09-08 00:07:46 +00:00
EntityManager s = getEntityManager();
try {
2009-04-13 17:19:48 +00:00
s.getTransaction().begin();
Object result = s.merge(object);
s.getTransaction().commit();
return result;
2008-09-08 00:07:46 +00:00
} finally {
if (s!=null) {
2009-04-13 17:19:48 +00:00
//s.close();
2008-09-08 00:07:46 +00:00
}
}
2007-03-22 00:01:07 +00:00
}
2009-08-11 18:31:29 +00:00
public void delete(Object object) throws VascException {
2008-09-08 00:07:46 +00:00
EntityManager s = getEntityManager();
try {
2009-04-13 17:19:48 +00:00
s.getTransaction().begin();
2008-09-08 00:07:46 +00:00
Object newObject = s.merge(object);
s.remove(newObject);
2009-04-13 17:19:48 +00:00
s.getTransaction().commit();
2008-09-08 00:07:46 +00:00
} finally {
if (s!=null) {
2009-04-13 17:19:48 +00:00
//s.close();
2008-09-08 00:07:46 +00:00
}
}
2007-03-22 00:01:07 +00:00
}
}