2011-05-02 107 views
0

我有一個問題與使用Spring 3查詢返回的多個記錄

我使用這個檢索值返回多個值的查詢,但TemplateFlow對象返回從DB總是空(所有字段包含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; } 

} 

我試圖直接在數據庫上運行查詢它返回兩行。

感謝您的幫助! 安德烈

+0

當您在數據庫的查詢工具中使用您正在使用的參數運行查詢時會發生什麼? – lobster1234 2011-05-02 09:54:17

回答

2

TemplateFlow類不符合JavaBean的圖案,並且ParameterizedBeanPropertyRowMapper需要此是這種情況:

列值是基於作爲從結果集的元數據獲得公共匹配列名映射設置相應的屬性。

例如,你應該有

int getId_templateflow() 
void setId_templateflow(int) 

代替

int id_templateflow() 
void id_templateflow(int) 

不過,我建議不要使用ParameterizedBeanPropertyRowMapper在所有 - 這將你的數據庫太緊你的代碼,這不是一件好事。請考慮編寫您自己的RowMapper實現。

+1

嗨,是啊!我創建了自己的RowMapper類並以這種方式調用:List flows = getJdbcTemplate()。query(sqlString,new TemplateFlowRowMapper()); – 2011-05-03 07:43:27