public void save() { EntityManager em = context.getEntityManager(); ODataJPATransaction tx = context.getODataJPATransaction(); boolean isLocalTransaction = false; if (!tx.isActive()) { tx.begin(); isLocalTransaction = true; } if (sourceJPAEntity != null) { em.persist(sourceJPAEntity); } if (targetJPAEntity != null) { em.persist(targetJPAEntity); } if (isLocalTransaction && ((sourceJPAEntity != null && em.contains(sourceJPAEntity)) || (targetJPAEntity != null && em .contains(targetJPAEntity)))) { tx.commit(); } }
@Override public BatchResponsePart executeChangeSet(final BatchHandler handler, final List<ODataRequest> requests) throws ODataException { List<ODataResponse> responses = new ArrayList<ODataResponse>(); try { oDataJPAContext.getODataJPATransaction().begin(); for (ODataRequest request : requests) { oDataJPAContext.setODataContext(getContext()); ODataResponse response = handler.handleRequest(request); if (response.getStatus().getStatusCode() >= HttpStatusCodes.BAD_REQUEST.getStatusCode()) { // Rollback oDataJPAContext.getODataJPATransaction().rollback(); List<ODataResponse> errorResponses = new ArrayList<ODataResponse>(1); errorResponses.add(response); return BatchResponsePart.responses(errorResponses).changeSet(false).build(); } responses.add(response); } oDataJPAContext.getODataJPATransaction().commit(); return BatchResponsePart.responses(responses).changeSet(true).build(); } catch (Exception e) { throw new ODataException("Error on processing request content:" + e.getMessage(), e); } finally { close(true); } }
@Override public Object process(DeleteUriInfo uriParserResultView, final String contentType) throws ODataJPAModelException, ODataJPARuntimeException { if (uriParserResultView instanceof DeleteUriInfo) { if (((UriInfo) uriParserResultView).isLinks()) { return deleteLink(uriParserResultView); } } Object selectedObject = readEntity(new JPAQueryBuilder(oDataJPAContext).build(uriParserResultView)); if (selectedObject != null) { try{ boolean isLocalTransaction = setTransaction(); em.remove(selectedObject); em.flush(); if (isLocalTransaction) { oDataJPAContext.getODataJPATransaction().commit(); } } catch(PersistenceException e){ em.getTransaction().rollback(); throw ODataJPARuntimeException.throwException( ODataJPARuntimeException.ERROR_JPQL_DELETE_REQUEST, e); } } return selectedObject; }
@Override public BatchResponsePart executeChangeSet(final BatchHandler handler, final List<ODataRequest> requests) throws ODataException { List<ODataResponse> responses = new ArrayList<ODataResponse>(); try { oDataJPAContext.getODataJPATransaction().begin(); for (ODataRequest request : requests) { oDataJPAContext.setODataContext(getContext()); ODataResponse response = handler.handleRequest(request); if (response.getStatus().getStatusCode() >= HttpStatusCodes.BAD_REQUEST.getStatusCode()) { // Rollback oDataJPAContext.getODataJPATransaction().rollback(); List<ODataResponse> errorResponses = new ArrayList<ODataResponse>(1); errorResponses.add(response); return BatchResponsePart.responses(errorResponses).changeSet(false).build(); } responses.add(response); } oDataJPAContext.getODataJPATransaction().commit(); return BatchResponsePart.responses(responses).changeSet(true).build(); } catch (Exception e) { throw new ODataException("Error on processing request content:" + e.getMessage(), e); } finally { close(true); } } }
oDataJPAContext.getODataJPATransaction().commit();
public void save() { EntityManager em = context.getEntityManager(); ODataJPATransaction tx = context.getODataJPATransaction(); boolean isLocalTransaction = false; if (!tx.isActive()) { tx.begin(); isLocalTransaction = true; } if (sourceJPAEntity != null) { em.persist(sourceJPAEntity); } if (targetJPAEntity != null) { em.persist(targetJPAEntity); } if (isLocalTransaction && ((sourceJPAEntity != null && em.contains(sourceJPAEntity)) || (targetJPAEntity != null && em .contains(targetJPAEntity)))) { tx.commit(); } }
oDataJPAContext.getODataJPATransaction().commit();
oDataJPAContext.getODataJPATransaction().commit();
oDataJPAContext.getODataJPATransaction().commit();
if (em.contains(jpaEntity)) { if (isLocalTransaction) { oDataJPAContext.getODataJPATransaction().commit();