2015-07-03 37 views
0

我有一个域对象包含一个变量,作为来自netezza的值列表和另外4个变量,它们是普通变量,它们将使用行映射器从oracle数据库中分配值。Springs Rowmapper引发类型不匹配问题。

以下语句出现错误提示:类型不匹配:无法从List转换为CharacteristicsValue。是因为域对象里面包含一个列表作为变量。

特征值charValue = jdbcOMTemplate.query(builtQuery,new DimCharRowMapper());

我可以将变量作为List来解决问题,但想知道是否有更好的方法。

回答

2

query()方法返回的值为List

queryForObject()方法返回单个Object

如果您搜索单个对象,请用queryForObject替换query

如果你需要一个列表改变变量charValue的类型List<CharacteristicsValue>

注:queryForObject()抛出IncorrectResultSizeDataAccessException如果查询的结果是不完全的一个记录。代替query()也可以检索零个,一个或多个记录。

+0

谢谢。所以这个对象将会把结果集中的所有列返回给我。不是吗? –

+0

是,如果在DimCharRowMapper中映射了所有列。请注意,如果记录不存在,则会引发异常(不会像ORM框架的类似方法那样返回null)。 –

+0

如果您认为此答案正确,可以使用绿色标记标记该答案。谢谢 –