Example usage for org.springframework.integration.jdbc JdbcPollingChannelAdapter setUpdatePerRow

List of usage examples for org.springframework.integration.jdbc JdbcPollingChannelAdapter setUpdatePerRow

Introduction

In this page you can find the example usage for org.springframework.integration.jdbc JdbcPollingChannelAdapter setUpdatePerRow.

Prototype

public void setUpdatePerRow(boolean updatePerRow) 

Source Link

Usage

From source file:org.springframework.integration.jdbc.JdbcPollingChannelAdapterIntegrationTests.java

@Test
public void testSimplePollForListWithRowMapperAndUpdatePerRow() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item where status=2");
    adapter.setUpdateSql("update item set status = 10 where id = :id");
    adapter.setUpdatePerRow(true);
    adapter.setRowMapper(new ItemRowMapper());
    adapter.setBeanFactory(mock(BeanFactory.class));
    adapter.afterPropertiesSet();/*  ww  w  . j  av a  2  s.  co  m*/

    this.jdbcTemplate.update("insert into item values(1,2)");
    this.jdbcTemplate.update("insert into item values(2,2)");

    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 2, rows.size());
    assertTrue("Wrong payload type", rows.get(0) instanceof Item);
    Item item = (Item) rows.get(0);
    assertEquals("Wrong id", 1, item.getId());
    assertEquals("Wrong status", 2, item.getStatus());

    int countOfStatusTwo = this.jdbcTemplate.queryForInt("select count(*) from item where status = 2");
    assertEquals("Status not updated incorect number of rows with status 2", 0, countOfStatusTwo);

    int countOfStatusTen = this.jdbcTemplate.queryForInt("select count(*) from item where status = 10");
    assertEquals("Status not updated incorect number of rows with status 10", 2, countOfStatusTen);

}

From source file:org.springframework.integration.jdbc.JdbcPollingChannelAdapterIntegrationTests.java

@Test
public void testSimplePollForListWithRowMapperAndInsertPerRowAndMaxRows() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item where id not in (select id from copy)");
    adapter.setUpdateSql("insert into copy values(:id,10)");
    adapter.setUpdatePerRow(true);
    adapter.setMaxRowsPerPoll(1);/*  w w  w .j a v  a2  s. c om*/
    adapter.setRowMapper(new ItemRowMapper());
    adapter.setBeanFactory(mock(BeanFactory.class));
    adapter.afterPropertiesSet();

    this.jdbcTemplate.update("insert into item values(1,2)");
    this.jdbcTemplate.update("insert into item values(2,2)");

    logger.debug(adapter.receive());
    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 1, rows.size());
    assertTrue("Wrong payload type", rows.get(0) instanceof Item);
    Item item = (Item) rows.get(0);
    logger.debug(item);
    assertEquals("Wrong id", 2, item.getId());
    assertEquals("Wrong status", 2, item.getStatus());

    int countOfStatusTwo = this.jdbcTemplate.queryForInt("select count(*) from item where status = 2");
    assertEquals("Status not updated incorect number of rows with status 2", 2, countOfStatusTwo);

    int countOfStatusTen = this.jdbcTemplate.queryForInt("select count(*) from copy where status = 10");
    assertEquals("Status not updated incorect number of rows with status 10", 2, countOfStatusTen);

}

From source file:org.springframework.integration.jdbc.JdbcPollingChannelAdapterIntegrationTests.java

@Test
public void testSimplePollForListWithRowMapperAndUpdatePerRowWithMaxRows() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item where status=2");
    adapter.setUpdateSql("update item set status = 10 where id = :id");
    adapter.setUpdatePerRow(true);
    adapter.setMaxRowsPerPoll(1);// w  w w .  j a  v  a 2  s  .c  o m
    adapter.setRowMapper(new ItemRowMapper());
    adapter.setBeanFactory(mock(BeanFactory.class));
    adapter.afterPropertiesSet();

    this.jdbcTemplate.update("insert into item values(1,2)");
    this.jdbcTemplate.update("insert into item values(2,2)");

    adapter.receive();
    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 1, rows.size());
    assertTrue("Wrong payload type", rows.get(0) instanceof Item);
    Item item = (Item) rows.get(0);
    assertEquals("Wrong id", 2, item.getId());
    assertEquals("Wrong status", 2, item.getStatus());

    int countOfStatusTwo = this.jdbcTemplate.queryForInt("select count(*) from item where status = 2");
    assertEquals("Status not updated incorect number of rows with status 2", 0, countOfStatusTwo);

    int countOfStatusTen = this.jdbcTemplate.queryForInt("select count(*) from item where status = 10");
    assertEquals("Status not updated incorect number of rows with status 10", 2, countOfStatusTen);

}