gpt4 book ai didi

java - BeanPropertyRowMapper 抛出 org.springframework.beans.TypeMismatchException 尽管 setPrimitivesDefaultedForNullValue(true)

转载 作者:行者123 更新时间:2023-11-30 05:41:15 24 4
gpt4 key购买 nike

在我的 Spring Batch 应用程序中,我读取数据库表并将其映射到 dto。我的 dto 有一些 boolean 类型的字段。

我的 Dto 和 dao 方法如下所示:

public class MyDto {

private long id;
private String yyy;
private boolean xxx;

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getYyy() {
return id;
}

public void setYyy(String yyy) {
this.yyy = yyy;
}

public boolean getXxx() {
return xxx;
}

public void setXxx(boolean xxx) {
this.xxx = xxx;
}
}

@Override
public MyDto readMyDto(String id) {
SqlParameterSource paramMap = new MapSqlParameterSource(ID, id);
BeanPropertyRowMapper<MyDto > rowMapper = new BeanPropertyRowMapper<>(MyDto.class);
rowMapper.setPrimitivesDefaultedForNullValue(true);
try {
return this.jdbcTemplateStpl.queryForObject(LESE_KRAFTST_STEUERFALL, paramMap, rowMapper);
} catch (EmptyResultDataAccessException e) {
return null;
}
}

我收到 Caused by: java.lang.IllegalArgumentException: Cannot conversion value of type [null] to required type [boolean] for property 'xxx' 尽管我已设置 setPrimitivesDefaultedForNullValuetrue

在我的单元测试中它工作正常,即使有异常(exception)。当我将 setPrimitivesDefaultedForNullValue 设置为 false 时,测试将按预期失败,并显示 Caused by: java.lang.IllegalArgumentException: Cannot conversion value of type [null] to required为属性“xxx”输入 [boolean]。

setPrimitivesDefaultedForNullValue 设置为 true 时的异常是我这边或 Spring Batch 的错误吗?还是这种行为是预期的,并且 BeanPropertyRowMapper 捕获该异常并在此将 null 默认为 false大小写( boolean 值)?

最佳答案

Your method..  
public void setId(boolean xxx) {
this.xxx = xxx;
}

should be
public void setXxx(boolean xxx) {
this.xxx = xxx;
}

关于java - BeanPropertyRowMapper 抛出 org.springframework.beans.TypeMismatchException 尽管 setPrimitivesDefaultedForNullValue(true),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55607012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com