package org.opennaas.core.resources.descriptor; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.persistence.RollbackException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.opennaas.core.persistence.GenericOSGiJpaRepository; import org.opennaas.core.persistence.PersistenceException; public class ResourceDescriptorRepository extends GenericOSGiJpaRepository<ResourceDescriptor, String> { private static Log logger = LogFactory.getLog(ResourceDescriptorRepository.class); public ResourceDescriptorRepository() { super(); } public List<ResourceDescriptor> getResourceDescriptors(String type) { Map<String, String> queryParams = new HashMap<String, String>(); queryParams.put("type", type); return this.findByNamedQueryAndNamedParams("resourceDescriptor.findByType", queryParams); } @Override public ResourceDescriptor save(ResourceDescriptor resourceDescriptor) { try { getEntityManager().getTransaction().begin(); getEntityManager().merge(resourceDescriptor); // getEntityManager().persist(resourceDescriptor); getEntityManager().getTransaction().commit(); } catch (RollbackException ex) { getEntityManager().getTransaction().rollback(); throw new PersistenceException("Exception while saving resourceDescriptor. Save operation has been rolledBack.", ex); } return resourceDescriptor; } @Override public void delete(ResourceDescriptor resourceDescriptor) { try { getEntityManager().getTransaction().begin(); ResourceDescriptor attachedResourceDescriptor = findById(resourceDescriptor.getId()); getEntityManager().remove(attachedResourceDescriptor); getEntityManager().getTransaction().commit(); } catch (RollbackException ex) { getEntityManager().getTransaction().rollback(); throw new PersistenceException("Exception while removing ResourceDescriptor. Delete operation has been rolledBack.", ex); } } }