2011-05-02 5 views
0

У меня есть проблема с запросом, который возвращает несколько значения с помощью пружины 3.запроса возвращает несколько записей

Я использую это, чтобы получить значение, но 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; } 

} 

Я пытаюсь запустить запрос непосредственно в БД, он возвращает две строки.

благодарит за помощь! Andrea

+0

Что происходит, когда вы запускаете этот запрос в инструменте запроса своей базы данных с параметрами, которые вы используете? – lobster1234

ответ

2

Вашего TemplateFlow класс не соответствует бин шаблону, и ParameterizedBeanPropertyRowMapper требует, чтобы это было так:

значение столбцов отображаются на основе сопоставления имени столбца, полученные из результирующего набора метаданных для общественности сеттеры для соответствующих свойств.

Например, вы должны иметь

int getId_templateflow() 
void setId_templateflow(int) 

вместо

int id_templateflow() 
void id_templateflow(int) 

Однако я бы посоветовал против использования ParameterizedBeanPropertyRowMapper на всех - это пары вашей базы данных слишком плотно к коду, и это не очень хорошо. Вместо этого подумайте о своей собственной реализации RowMapper.

+1

Привет, да! Я создаю свой собственный класс RowMapper и вызываю таким образом: List flow = getJdbcTemplate(). Query (sqlString, new TemplateFlowRowMapper()); –

Смежные вопросы