从 JdbcTemplate 检查 sql 语句是 运行

Checking the sql statement being run from JdbcTemplate

我正在尝试 运行 sql 声明

select `key`, avg(score) from score group by `key`

查找按列键分组的平均分。我正在使用 JdbcTemplate 来查询 mySQL 数据库。下面是java行代码

List<MarkupScore> scores = mysqlDbTemplate.query(sql, new BeanPropertyRowMapper(MarkupScore.class));

查询在我的数据库管理器中按计划工作(下图)

但是当我尝试访问列表分数时。我有一个包含 3 个 MarkupScore 的列表,它表示工作组,但平均分数设置为 0。我知道我的 sql 语句不是问题,因为它适用于实际数据库。我认为问题出在 jdbctemplate 翻译 sql 语句时?我也试过 运行 只是

select avg(score) from score

这个也是returns一个0。jdbctemplate不支持average吗?

我在下面附上了我正在使用的数据库的图片

由于您使用 BeanPropertyRowMapper 映射值,它试图将名为 avg(score) 的列映射到不存在的类似名称的 属性。给 avg(score) 一个映射到 MarkupScore.

中正确 属性 的别名(即 avg(score) AS score

并且在提问时,包括所有必要的信息。