Package jtatransaction.interceptor

Source Code of jtatransaction.interceptor.TransactionalBusiness

package jtatransaction.interceptor;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import br.gov.frameworkdemoiselle.DemoiselleException;
import br.gov.frameworkdemoiselle.stereotype.BusinessController;
import br.gov.frameworkdemoiselle.transaction.Transactional;

@BusinessController
public class TransactionalBusiness {
 
  @PersistenceContext(unitName="pu1")
  private EntityManager em1;
 
  @PersistenceContext(unitName="pu2")
  private EntityManager em2;
 
  @Transactional
  public void commitWithSuccess() {
    MyEntity1 entity1 = new MyEntity1();
    entity1.setId(createId("id-1"));
    entity1.setDescription("desc-1");

    MyEntity2 entity2 = new MyEntity2();
    entity2.setId(createId("id-2"));
    entity2.setDescription("desc-2");

    em1.joinTransaction();
    em2.joinTransaction();

    em1.persist(entity1);
    em2.persist(entity2);
   
    em1.flush();
    em2.flush();
  }
 
  @Transactional
  public void commitWithException() {
    MyEntity1 entity1 = new MyEntity1();
    entity1.setId(createId("id-1"));
    entity1.setDescription("desc-1");

    em1.joinTransaction();
    em1.persist(entity1);
  }

  public void checkNoTransactionAutomaticallyLoaded() {
    MyEntity1 entity = new MyEntity1();
    entity.setId(createId("id-2"));

    em1.persist(entity);
    em1.flush();
  }

  @Transactional
  public void rollbackWithSuccess() {
    MyEntity1 entity1 = new MyEntity1();
    entity1.setId(createId("id-3"));

    MyEntity2 entity2 = new MyEntity2();
    entity2.setId(createId("id-4"));

    em1.joinTransaction();
    em2.joinTransaction();

    em1.persist(entity1);
    em2.persist(entity2);
    em1.flush();
    em2.flush();
   
    em1.clear();
    em2.clear();

    throw new DemoiselleException("Forçando rollback");
  }
 
  public static String createId(String id) {
    return TransactionalBusiness.class.getName() + "_" + id;
  }

}
TOP

Related Classes of jtatransaction.interceptor.TransactionalBusiness

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.