public void testFieldsOnlyUpdateByExampleSelective() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
FieldsonlyMapper mapper = sqlSession.getMapper(FieldsonlyMapper.class);
Fieldsonly record = new Fieldsonly();
record.setDoublefield(11.22);
record.setFloatfield(33.44);
record.setIntegerfield(5);
mapper.insert(record);
record = new Fieldsonly();
record.setDoublefield(44.55);
record.setFloatfield(66.77);
record.setIntegerfield(8);
mapper.insert(record);
record = new Fieldsonly();
record.setDoublefield(88.99);
record.setFloatfield(100.111);
record.setIntegerfield(9);
mapper.insert(record);
record = new Fieldsonly();
record.setDoublefield(99d);
FieldsonlyExample example = new FieldsonlyExample();
example.createCriteria().andIntegerfieldGreaterThan(5);
int rows = mapper.updateByExampleSelective(record, example);
assertEquals(2, rows);
example.clear();
example.createCriteria().andIntegerfieldEqualTo(5);
List<Fieldsonly> answer = mapper.selectByExample(example);
assertEquals(1, answer.size());
record = answer.get(0);
assertEquals(record.getDoublefield(), 11.22, 0.0);
assertEquals(record.getFloatfield(), 33.44, 0.0);
assertEquals(record.getIntegerfield().intValue(), 5);
example.clear();
example.createCriteria().andIntegerfieldEqualTo(8);
answer = mapper.selectByExample(example);
assertEquals(1, answer.size());
record = answer.get(0);
assertEquals(record.getDoublefield(), 99d, 0.0);
assertEquals(record.getFloatfield(), 66.77, 0.0);
assertEquals(record.getIntegerfield().intValue(), 8);
example.clear();
example.createCriteria().andIntegerfieldEqualTo(9);
answer = mapper.selectByExample(example);
assertEquals(1, answer.size());
record = answer.get(0);
assertEquals(record.getDoublefield(), 99d, 0.0);
assertEquals(record.getFloatfield(), 100.111, 0.0);
assertEquals(record.getIntegerfield().intValue(), 9);
} finally {
sqlSession.close();
}
}