stmt.execute("create table GENERATED_KEYS(" +
"ID int AUTO_INCREMENT PRIMARY KEY, " +
"NAME varchar(30))");
QGeneratedKeysEntity entity = new QGeneratedKeysEntity("entity");
SQLInsertClause insertClause = new SQLInsertClause(conn, new H2Templates(), entity);
ResultSet rs = insertClause.set(entity.name, "Hello").executeWithKeys();
ResultSetMetaData md = rs.getMetaData();
System.out.println(md.getColumnName(1));
assertTrue(rs.next());
assertEquals(1, rs.getInt(1));
assertFalse(rs.next());
insertClause = new SQLInsertClause(conn, new H2Templates(), entity);
rs = insertClause.set(entity.name, "World").executeWithKeys();
assertTrue(rs.next());
assertEquals(2, rs.getInt(1));
assertFalse(rs.next());
insertClause = new SQLInsertClause(conn, new H2Templates(), entity);
assertEquals(3, insertClause.set(entity.name, "World").executeWithKey(entity.id).intValue());
insertClause = new SQLInsertClause(conn, new H2Templates(), entity);
assertEquals(Collections.singletonList(4), insertClause.set(entity.name, "World").executeWithKeys(entity.id));
}