Search in sources :

Example 66 with UserTransaction

use of javax.transaction.UserTransaction in project microservices by pwillhan.

the class BulkStatementsCriteria method bulkDelete.

@Test(expectedExceptions = EntityNotFoundException.class)
public void bulkDelete() throws Exception {
    BulkBatchTestData testData = storeTestData();
    UserTransaction tx = TM.getUserTransaction();
    try {
        CriteriaBuilder criteriaBuilder = JPA.getEntityManagerFactory().getCriteriaBuilder();
        tx.begin();
        EntityManager em = JPA.createEntityManager();
        List<CreditCard> creditCards = em.createQuery("select c from CreditCard c").getResultList();
        CriteriaDelete<CreditCard> delete = criteriaBuilder.createCriteriaDelete(CreditCard.class);
        Root<CreditCard> c = delete.from(CreditCard.class);
        delete.where(criteriaBuilder.like(c.get(CreditCard_.owner), "J%"));
        em.createQuery(delete).executeUpdate();
        for (CreditCard creditCard : creditCards) {
            // Throws EntityNotFoundException
            em.refresh(creditCard);
        }
        tx.commit();
        em.close();
    } finally {
        TM.rollback();
    }
}
Also used : UserTransaction(javax.transaction.UserTransaction) CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) EntityManager(javax.persistence.EntityManager) CreditCard(org.jpwh.model.bulkbatch.CreditCard) JPATest(org.jpwh.env.JPATest) Test(org.testng.annotations.Test)

Example 67 with UserTransaction

use of javax.transaction.UserTransaction in project microservices by pwillhan.

the class BulkStatementsCriteria method bulkUpdateVersioned.

@Test
public void bulkUpdateVersioned() throws Exception {
    BulkBatchTestData testData = storeTestData();
    UserTransaction tx = TM.getUserTransaction();
    try {
        CriteriaBuilder criteriaBuilder = JPA.getEntityManagerFactory().getCriteriaBuilder();
        tx.begin();
        EntityManager em = JPA.createEntityManager();
        long ITEM_ID = testData.items.getFirstId();
        Item someItem = em.find(Item.class, ITEM_ID);
        int originalVersion = someItem.getVersion();
        CriteriaUpdate<Item> update = criteriaBuilder.createCriteriaUpdate(Item.class);
        Root<Item> i = update.from(Item.class);
        update.set(i.get(Item_.active), true);
        update.set(i.get(Item_.version), criteriaBuilder.sum(i.get(Item_.version), 1));
        int updatedEntities = em.createQuery(update).executeUpdate();
        assertEquals(updatedEntities, 3);
        em.refresh(someItem);
        assertTrue(someItem.getVersion() > originalVersion);
        tx.commit();
        em.close();
    } finally {
        TM.rollback();
    }
}
Also used : UserTransaction(javax.transaction.UserTransaction) CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) Item(org.jpwh.model.bulkbatch.Item) EntityManager(javax.persistence.EntityManager) JPATest(org.jpwh.env.JPATest) Test(org.testng.annotations.Test)

Example 68 with UserTransaction

use of javax.transaction.UserTransaction in project microservices by pwillhan.

the class BulkStatementsCriteria method storeTestData.

public BulkBatchTestData storeTestData() throws Exception {
    UserTransaction tx = TM.getUserTransaction();
    tx.begin();
    EntityManager em = JPA.createEntityManager();
    Long[] itemIds = new Long[3];
    Long[] userIds = new Long[3];
    User johndoe = new User("johndoe");
    em.persist(johndoe);
    userIds[0] = johndoe.getId();
    User janeroe = new User("janeroe");
    em.persist(janeroe);
    userIds[1] = janeroe.getId();
    User robertdoe = new User("robertdoe");
    em.persist(robertdoe);
    userIds[2] = robertdoe.getId();
    Item item = new Item("Item One", CalendarUtil.TOMORROW.getTime(), johndoe);
    em.persist(item);
    itemIds[0] = item.getId();
    for (int i = 1; i <= 3; i++) {
        Bid bid = new Bid(item, robertdoe, new BigDecimal(9 + i));
        item.getBids().add(bid);
        em.persist(bid);
    }
    item = new Item("Item Two", CalendarUtil.TOMORROW.getTime(), johndoe);
    em.persist(item);
    itemIds[1] = item.getId();
    for (int i = 1; i <= 1; i++) {
        Bid bid = new Bid(item, janeroe, new BigDecimal(2 + i));
        item.getBids().add(bid);
        em.persist(bid);
    }
    item = new Item("Item_Three", CalendarUtil.AFTER_TOMORROW.getTime(), janeroe);
    em.persist(item);
    itemIds[2] = item.getId();
    for (int i = 1; i <= 1; i++) {
        Bid bid = new Bid(item, johndoe, new BigDecimal(3 + i));
        item.getBids().add(bid);
        em.persist(bid);
    }
    em.persist(new BankAccount(janeroe, "Jane Roe", "445566", "One Percent Bank Inc.", "999"));
    em.persist(new CreditCard(johndoe, "John Doe", "1234123412341234", "06", "2015"));
    tx.commit();
    em.close();
    BulkBatchTestData testData = new BulkBatchTestData();
    testData.items = new TestData(itemIds);
    testData.users = new TestData(userIds);
    return testData;
}
Also used : UserTransaction(javax.transaction.UserTransaction) User(org.jpwh.model.bulkbatch.User) TestData(org.jpwh.shared.util.TestData) BankAccount(org.jpwh.model.bulkbatch.BankAccount) BigDecimal(java.math.BigDecimal) CreditCard(org.jpwh.model.bulkbatch.CreditCard) Item(org.jpwh.model.bulkbatch.Item) EntityManager(javax.persistence.EntityManager) Bid(org.jpwh.model.bulkbatch.Bid)

Example 69 with UserTransaction

use of javax.transaction.UserTransaction in project microservices by pwillhan.

the class BulkStatementsJPQL method bulkDelete.

@Test(expectedExceptions = EntityNotFoundException.class)
public void bulkDelete() throws Exception {
    BulkBatchTestData testData = storeTestData();
    UserTransaction tx = TM.getUserTransaction();
    try {
        tx.begin();
        EntityManager em = JPA.createEntityManager();
        List<CreditCard> creditCards = em.createQuery("select c from CreditCard c").getResultList();
        em.createQuery("delete CreditCard c where c.owner like 'J%'").executeUpdate();
        for (CreditCard creditCard : creditCards) {
            // Throws EntityNotFoundException
            em.refresh(creditCard);
        }
        tx.commit();
        em.close();
    } finally {
        TM.rollback();
    }
}
Also used : UserTransaction(javax.transaction.UserTransaction) EntityManager(javax.persistence.EntityManager) CreditCard(org.jpwh.model.bulkbatch.CreditCard) StolenCreditCard(org.jpwh.model.bulkbatch.StolenCreditCard) JPATest(org.jpwh.env.JPATest) Test(org.testng.annotations.Test)

Example 70 with UserTransaction

use of javax.transaction.UserTransaction in project microservices by pwillhan.

the class BulkStatementsJPQL method bulkUpdate.

@Test
public void bulkUpdate() throws Exception {
    BulkBatchTestData testData = storeTestData();
    UserTransaction tx = TM.getUserTransaction();
    try {
        tx.begin();
        EntityManager em = JPA.createEntityManager();
        long ITEM_ID = testData.items.getFirstId();
        long USER_ID = testData.users.getFirstId();
        Item someItem = em.find(Item.class, ITEM_ID);
        User johndoe = em.find(User.class, USER_ID);
        int originalVersion = someItem.getVersion();
        assertEquals(someItem.getSeller(), johndoe);
        assertFalse(someItem.isActive());
        Query query = em.createQuery("update Item i set i.active = true where i.seller = :s").setParameter("s", johndoe);
        int updatedEntities = query.executeUpdate();
        // Entity instances, not "rows"
        assertEquals(updatedEntities, 2);
        assertFalse(someItem.isActive());
        // Update the instance in persistence context
        em.refresh(someItem);
        assertTrue(someItem.isActive());
        // Version wasn't incremented!
        assertEquals(someItem.getVersion(), originalVersion);
        tx.commit();
        em.close();
    } finally {
        TM.rollback();
    }
}
Also used : UserTransaction(javax.transaction.UserTransaction) Item(org.jpwh.model.bulkbatch.Item) EntityManager(javax.persistence.EntityManager) User(org.jpwh.model.bulkbatch.User) Query(javax.persistence.Query) JPATest(org.jpwh.env.JPATest) Test(org.testng.annotations.Test)

Aggregations

UserTransaction (javax.transaction.UserTransaction)642 EntityManager (javax.persistence.EntityManager)244 Test (org.testng.annotations.Test)187 Test (org.junit.Test)157 JPATest (org.jpwh.env.JPATest)138 InitialContext (javax.naming.InitialContext)62 BigDecimal (java.math.BigDecimal)53 HashMap (java.util.HashMap)52 IOException (java.io.IOException)50 Context (javax.naming.Context)49 List (java.util.List)47 FacesContext (javax.faces.context.FacesContext)43 NamingException (javax.naming.NamingException)43 NodeRef (org.alfresco.service.cmr.repository.NodeRef)43 Node (javax.jcr.Node)42 KieSession (org.kie.api.runtime.KieSession)42 Query (javax.persistence.Query)38 QueryingTest (org.jpwh.test.querying.QueryingTest)36 IntegrationTest (org.apache.geode.test.junit.categories.IntegrationTest)35 Item (org.jpwh.model.querying.Item)35