hibernate - исключение в потоке "main" java.lang.IndexOutOfBoundsException: индекс: 0, размер: 0 - PullRequest
0 голосов
/ 21 марта 2019

Я получаю индекс из связанной исключительной ситуации при выполнении этого кода. Может кто-нибудь помочь мне разобраться в этом вопросе.

Session session = new Configuration().configure().buildSessionFactory().openSession();
String sql = "select name from chapter_product where name = 'sample'";
SQLQuery query = session.createSQLQuery(sql);
List results = query.list();
if(results .get(0)!=null) {
System.out.println("value:"+results.get(0));
}else {
System.out.println("no values");
}

Ответы [ 4 ]

1 голос
/ 21 марта 2019

вы пытаетесь получить доступ к пустому списку первого элемента в этой строке.

Вам нужно проверить наличие пустых, затем вам нужно получить доступ к объектам

Пример кода

       if(!results.isEmpty()){

System.out.println("value:"+results.get(0));
}
else{
System.out.println("no values");

}
1 голос
/ 21 марта 2019

Ошибка, вероятно, выдается здесь:

List results = query.list();

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

0 голосов
/ 21 марта 2019
  if(results .get(0)!=null && !results.isEmpty()) {
  System.out.println("value:"+results.get(0));
 }else {
 System.out.println("no values");
 }
0 голосов
/ 21 марта 2019

Проблема в том, что вы пытаетесь получить доступ к 0-му элементу из пустого списка.

Ваш чек должен быть:

if (results == null || results.isEmpty()) {
    System.out.println("no values");
} else {
    // Do your stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...