Package org.springframework.orm.jpa

Examples of org.springframework.orm.jpa.JpaCallback


    }

    public void process(Exchange exchange) {
        final Object values = expression.evaluate(exchange);
        if (values != null) {
            template.execute(new JpaCallback() {
                public Object doInJpa(EntityManager entityManager) throws PersistenceException {
                    Iterator iter = ObjectConverter.iterator(values);
                    while (iter.hasNext()) {
                        Object value = iter.next();
                        entityManager.persist(value);
View Full Code Here


        this.endpoint = endpoint;
        this.template = endpoint.createTransactionStrategy();
    }

    protected void poll() throws Exception {
        template.execute(new JpaCallback() {
            public Object doInJpa(EntityManager entityManager) throws PersistenceException {
                Query query = getQueryFactory().createQuery(entityManager);
                configureParameters(query);
                List results = query.getResultList();
                for (Object result : results) {
View Full Code Here

    protected void fireExpiredEvent(final ActivityState activityState) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("Trying to fire expiration of: " + activityState);
        }

        template.execute(new JpaCallback() {
            public Object doInJpa(EntityManager entityManager) throws PersistenceException {
                // lets try lock the object first
                if (isUseLocking()) {
                    LOG.info("Attempting to lock: " + activityState);
                    entityManager.lock(activityState, LockModeType.WRITE);
View Full Code Here

    protected CountDownLatch latch = new CountDownLatch(1);
    protected String entityName = MultiSteps.class.getName();
    protected String queryText = "select o from " + entityName + " o where o.step = 1";

    public void testProducerInsertsIntoDatabaseThenConsumerFiresMessageExchange() throws Exception {
        transactionStrategy.execute(new JpaCallback() {
            public Object doInJpa(EntityManager entityManager) throws PersistenceException {
                // lets delete any exiting records before the test
                entityManager.createQuery("delete from " + entityName).executeUpdate();

                // now lets create a dummy entry
                MultiSteps dummy = new MultiSteps("cheese");
                dummy.setStep(4);
                entityManager.persist(dummy);
                return null;
            }
        });

        List results = jpaTemplate.find(queryText);
        assertEquals("Should have no results: " + results, 0, results.size());

        // lets produce some objects
        template.send(endpoint, new Processor() {
            public void process(Exchange exchange) {
                exchange.getIn().setBody(new MultiSteps("foo@bar.com"));
            }
        });

        // now lets assert that there is a result
        results = jpaTemplate.find(queryText);
        assertEquals("Should have results: " + results, 1, results.size());
        MultiSteps mail = (MultiSteps)results.get(0);
        assertEquals("address property", "foo@bar.com", mail.getAddress());

        // now lets create a consumer to consume it
        consumer = endpoint.createConsumer(new Processor() {
            public void process(Exchange e) {
                LOG.info("Received exchange: " + e.getIn());
                receivedExchange = e;
                latch.countDown();
            }
        });
        consumer.start();

        boolean received = latch.await(50, TimeUnit.SECONDS);
        assertTrue("Did not receive the message!", received);

        assertNotNull(receivedExchange);
        MultiSteps result = receivedExchange.getIn().getBody(MultiSteps.class);
        assertNotNull("Received a POJO", result);
        assertEquals("address property", "foo@bar.com", result.getAddress());

        // lets now test that the database is updated
        // TODO we need to sleep as we will be invoked from inside the
        // transaction!
        Thread.sleep(1000);

        transactionStrategy.execute(new JpaCallback() {
            public Object doInJpa(EntityManager entityManager) throws PersistenceException {

                // now lets assert that there are still 2 entities left
                List<MultiSteps> rows = entityManager.createQuery("select x from MultiSteps x").getResultList();
                assertEquals("Number of entities: " + rows, 2, rows.size());
View Full Code Here

    protected CountDownLatch latch = new CountDownLatch(1);
    protected String entityName = SendEmail.class.getName();
    protected String queryText = "select o from " + entityName + " o";

    public void testProducerInsertsIntoDatabaseThenConsumerFiresMessageExchange() throws Exception {
        transactionStrategy.execute(new JpaCallback() {
            public Object doInJpa(EntityManager entityManager) throws PersistenceException {
                // lets delete any exiting records before the test
                entityManager.createQuery("delete from " + entityName).executeUpdate();
                return null;
            }
View Full Code Here

    return this.distinct;
  }

  @Transactional
  public void delete(final PK id) {
    getJpaTemplate().execute(new JpaCallback() {
      public Object doInJpa(EntityManager entityManager)
          throws PersistenceException {
        String queryString = "DELETE FROM " + getEntityName()
            + " WHERE " + getIdPropertyName() + " = " + id;
        Query query = entityManager.createQuery(queryString);
View Full Code Here

    return readExclusive(type, id);
  }

  @SuppressWarnings("unchecked")
  public T refresh(final T transientObject) {
    return (T)getJpaTemplate().execute(new JpaCallback() {   
      public Object doInJpa(EntityManager em) throws PersistenceException {
        T managedEntity = null;
        if (em.contains(transientObject)) {
          managedEntity = transientObject;
        }
View Full Code Here

  public T refresh(final PK id) {
    if (type == null) {
      throw new UnsupportedOperationException(
          "The type must be set to use this method.");
    }
    return (T)getJpaTemplate().execute(new JpaCallback() {   
      public Object doInJpa(EntityManager em) throws PersistenceException {
        T managedEntity = em.find(type, id);
        // now refresh the state of the managed object, discarding any changes that were made
        em.refresh(managedEntity);
        return managedEntity;
View Full Code Here

  }
 

  @Transactional
  public void flushAndClear() {
    getJpaTemplate().execute(new JpaCallback() {
      public Object doInJpa(EntityManager entityManager)
          throws PersistenceException {
        entityManager.flush();
        entityManager.clear();
        return null;
View Full Code Here

    });
  }

 
  public void clear() {
    getJpaTemplate().execute(new JpaCallback() {
      public Object doInJpa(EntityManager entityManager)
          throws PersistenceException {
        entityManager.clear();
        return null;
      }
View Full Code Here

TOP

Related Classes of org.springframework.orm.jpa.JpaCallback

Copyright © 2018 www.massapicom. 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.