2011-05-02 2 views
0

나는 봄에게 내가 값을 검색하려면이 옵션을 사용하고 3쿼리는 여러 레코드

를 사용하여 여러 값을 반환하는 쿼리에 문제가 있음을했습니다,하지만 TemplateFlow 객체가 DB는 항상 null의에서 반환 된 (모든 필드가 포함를 반환 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

사용중인 매개 변수로 데이터베이스의 쿼리 도구에서 해당 쿼리를 실행하면 어떻게됩니까? – lobster1234

답변

2

귀하의 TemplateFlow 클래스는 자바 빈즈 패턴에 부합하지 않으며, ParameterizedBeanPropertyRowMapper는 경우가 수 있도록이 필요합니다

열 값이 대중에게 결과 세트의 메타 데이터에서 얻은 열 이름과 일치를 기반으로 매핑됩니다 해당 속성에 대한 setter.

예를 들어, 당신은 내가 전혀 ParameterizedBeanPropertyRowMapper를 사용하여 무리를 줄 것 대신 그러나

int id_templateflow() 
void id_templateflow(int) 

int getId_templateflow() 
void setId_templateflow(int) 

을 가져야한다 - 그것은 커플 데이터베이스를 너무 꽉 코드에, 그것은 좋은 것이 아닙니다. 대신 RowMapper의 자체 구현을 작성하십시오.

+1

안녕하세요, 예! 내 자신의 RowMapper 클래스를 만들고 그런 식으로 호출 : List flows = getJdbcTemplate() .query (sqlString, new TemplateFlowRowMapper()); –