我遇到一个使用Spring 3返回多个值的查询的问题。
我正在使用它来检索值,但从DB返回的TemplateFlow
对象始终为空(所有字段都包含null
或默认值)。
List<TemplateFlow> flows = (List<TemplateFlow>) getJdbcTemplate().query(
sqlString,
ParameterizedBeanPropertyRowMapper.newInstance(TemplateFlow.class)
);
TemplateFlow
是一个包含所有字段的类。我在更新后检索一些值,是否可能需要提交更改? (但我没有使用任何形式的交易)。
public class TemplateFlow {
private int id_templateflow;
private int id_templateprocess;
public int id_templateflow() { return this.id_templateflow; }
public void id_templateflow(int id_templateflow) { this.id_templateflow = id_templateflow; }
public int id_templateprocess() { return this.id_templateprocess; }
public void id_templateprocess(int id_templateprocess) { this.id_templateprocess = id_templateprocess; }
}
我尝试直接在DB上运行查询,返回两行。
感谢您的帮助! 安德烈
答案 0 :(得分:2)
您的TemplateFlow
类不符合javabean模式,ParameterizedBeanPropertyRowMapper
要求如此:
根据从结果集元数据中获取的列名与相应属性的公共setter匹配来映射列值。
例如,您应该
int getId_templateflow()
void setId_templateflow(int)
而不是
int id_templateflow()
void id_templateflow(int)
但是,我建议不要使用ParameterizedBeanPropertyRowMapper
- 它会将您的数据库与您的代码紧密耦合,这不是一件好事。请考虑编写自己的RowMapper
实现。