При попытке поиска в базе данных с помощью Spring высвечивает Incorrect result size: expected 1, actual 0, с чем связано?
При запуске программы, постоянно получаю одну и ту же ошибку. Делал дебаг, но не помогло найти причину. Код теста
@Test
public void testCfg(){
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
ctx.load("classpath:config/embdb.xml");
ctx.refresh();
SingerDao singerDao = ctx.getBean(SingerDao.class);
System.out.println("First name for singer id 1 is: " +
singerDao.findFirstNameById(1l));
ctx.close();
}
А сам метод для поиска:
@Override
public String findFirstNameById(Long id) {
return jdbcTemplate.queryForObject(
"select first_name from singer where id = ?",
new Object[]{id}, String.class);
}
База запускается без проблем, вот её коды: schema.sql
CREATE TABLE if not exists SINGER (
ID INT NOT NULL AUTO_INCREMENT
, FIRST_NAME VARCHAR(60) NOT NULL
, LAST_NAME VARCHAR(40) NOT NULL
, BIRTH_DATE DATE
, UNIQUE UQ_SINGER_1 (FIRST_NAME, LAST_NAME)
, PRIMARY KEY (ID)
);
CREATE TABLE if not exists ALBUM (
ID INT NOT NULL AUTO_INCREMENT
, SINGER_ID INT NOT NULL
, TITLE VARCHAR(100) NOT NULL
, RELEASE_DATE DATE
, UNIQUE UQ_SINGER_ALBUM_1 (SINGER_ID, TITLE)
, PRIMARY KEY (ID)
, CONSTRAINT FK_ALBUM
FOREIGN KEY (SINGER_ID)
REFERENCES SINGER (ID)
ON DELETE CASCADE
);
test-data.sql
Ответы (1 шт):
Автор решения: Артем Артемов
→ Ссылка
Как оказалось, то проблема каким-то образом свзана с альбомами. Удалил и заработало

