Запрос возвращает несколько записей - PullRequest
0 голосов
/ 02 мая 2011

У меня проблема с запросом, который возвращает несколько значений с помощью Spring 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

1 Ответ

2 голосов
/ 02 мая 2011

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

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

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

int getId_templateflow()
void setId_templateflow(int)

вместо

int id_templateflow()
void id_templateflow(int)

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

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