我有一个包含变量的域对象,作为来自netezza的值列表和另外4个变量,这些变量是普通变量,它们将使用行映射器从oracle db获取赋值。
下面的语句抛出错误说:类型不匹配:无法从List转换为CharacteristicsValue。是因为域对象包含列表作为内部变量。
CharacteristicsValue charValue = jdbcOMTemplate.query(builtQuery,new DimCharRowMapper());
我可以将变量作为List来解决问题,但想知道是否有更好的方法。
答案 0 :(得分:2)
query()
方法返回List
个值。
queryForObject()
方法返回单个Object
。
如果您搜索单个对象,请将query
替换为queryForObject
。
如果您需要列表,请将变量charValue
的类型更改为List<CharacteristicsValue>
注意: queryForObject()
如果查询结果不是一条记录,则抛出IncorrectResultSizeDataAccessException
。 query()
也可以很好地检索零个,一个或多个记录。