Я пытаюсь написать метод, который будет извлекать строку в базе данных. Примерно в 50% случаев этот ряд не будет существовать. Я попытался использовать jdbcTemplate.queryForObject, но это привело к исключению, если строка не существует в БД. Я не думаю, что это хорошая практика, пытаться поймать метод.
Я читал, что если ваши данные могут быть нулевыми, jdbcTemplate.query был лучшим выбором. Но я могу заставить его работать, только если верну список. Возвращать список здесь не имеет смысла, поскольку я выбираю только 1 строку, которая может существовать или не существовать.
public List<LoanDetailsBean> getLoanDetailsByInsaddr(String insaddr) {
String SQL_GET_LOAN_DETAILS_BY_INSADDR =
"SELECT TOP 1 cip.tranchesize, " +
" cip.maturitydate, " +
" cip.moodysissuerrating, " +
" cip.snpissuerrating, " +
" cip.moodysassetrating, " +
" cip.snpassetrating " +
"FROM cloinstrumentproperty cip " +
"WHERE insaddr = ? " +
"ORDER BY updatedtime DESC ";
return isdbJdbcTemplate.query(SQL_GET_LOAN_DETAILS_BY_INSADDR, new Object[] { insaddr }, (rs, rowNum) ->
new LoanDetailsBean(
rs.getDouble("tranchesize"),
rs.getString("maturitydate"),
rs.getString("moodysissuerrating"),
rs.getString("snpissuerrating"),
rs.getString("moodysassetrating"),
rs.getString("snpassetrating")
)
);
}
Как я могу переписать это, чтобы иметь немного больше смысла?