Подтвердить что ты не робот

Hibernate-запрос дает такую ​​же запись несколько раз

Я работаю в спящем режиме в затмении. Я выполняю простой запрос "От". Вот код

  List list = sess1.createQuery("From Myview").list();
    System.out.println("Records Found :"+list.size());

    Iterator<Myview> i = list.iterator();

    while(i.hasNext())
    {
        Myview nS = i.next();
        System.out.println(nS.getFirstName()+" -- "+nS.getLastName()+" -- "+nS.getAddressLine1());
    }

Проблема заключается в том, что list.size() возвращает 11, что верно, поскольку у меня есть 11 записей в моей таблице. Но когда я нахожусь в цикле while, одни и те же записи показываются несколько раз, а термины цикла - после 11-й итерации. вот мой вывод

enter image description here

вот что я хочу

enter image description here

Теперь вы можете видеть, что в моем выводе запись отображается 11 раз, но одна и та же запись повторяется снова и снова. И мне нужен вывод, отображаемый на более позднем изображении.

Просьба помочь мне в этом отношении, поскольку я новичок в спящем режиме

4b9b3361

Ответ 1

Это происходит, когда элемент id в вашем файле hbm не является PK в вашей таблице DB. Hibernate обрабатывает все строки с тем же идентификатором, что и один и тот же объект.

Либо измените свой элемент id на столбец PK, либо используйте элемент составного идентификатора, если ваша таблица имеет только составной первичный ключ.

Ответ 2

Ваша сущность Myview должна реализовать интерфейс java.io.Serializable

Ответ 3

Вы уверены, что таблица правильно заполнена? попробуйте:

List list = sess1.createQuery("SELECT * FROM Myview").list();

Кроме того, вы получаете этот список из представления? вы уверены, что правильно это сделали?

Ответ 4

Вы должны использовать отдельное ключевое слово для фильтрации того же результата.

Ответ 5

Если у вас есть ассоциация в сопоставлении, проверьте, есть ли fetch=FetchType.EAGER. Если да, то используйте другой тип выборки или fetchMode.

Ответ 6

Поместите объекты, возвращаемые Hibernate, в LinkedHashSet и верните LinkedHashSet.