【问题标题】:Springs Rowmapper throwing type mismatch issue.Springs Rowmapper 抛出类型不匹配问题。
【发布时间】:2015-07-03 07:20:22
【问题描述】:

我有一个包含变量的域对象,作为来自 netezza 的值列表和另外 4 个变量,这些变量是普通变量,它们将使用行映射器从 oracle db 获取分配的值。

下面的语句抛出错误说:类型不匹配:无法从列表转换为特性值。是不是因为域对象里面包含一个列表作为变量。

CharacteristicsValue charValue = jdbcOMTemplate.query(builtQuery, new DimCharRowMapper());

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

【问题讨论】:

    标签: java spring frameworks


    【解决方案1】:

    query() 方法返回一个List 的值。

    queryForObject() 方法返回单个 Object

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

    如果需要列表,请将变量类型 charValue 更改为 List<CharacteristicsValue>

    注意: queryForObject()throw an IncorrectResultSizeDataAccessException 如果查询结果不完全是一条记录。 query() 也可以很好地检索零、一条或多条记录。

    【讨论】:

    • 谢谢。因此,该对象将依次返回结果集中的所有列。不是吗?
    • 是的,如果您在 DimCharRowMapper 中映射了所有列。请注意,如果记录不存在,则会引发异常(不会像 ORM 框架的类似方法那样返回 null)。
    • 如果你认为这个答案是正确的,你可以用绿旗标记它。谢谢
    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 2021-06-05
    • 2016-10-24
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多