2012-05-12 2 views
13

Я работаю на спящем режиме в затмении. Я выполняю простой запрос «От». Вот кодСпящий запрос дает такую ​​же запись несколько раз

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 раз, но та же запись повторяется снова и снова , И мне нужен вывод, отображаемый на более позднем изображении.

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

ответ

18

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

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

0

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

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

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

+3

Это SQL, а не HQL. –

0

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

1

Вашей организации MyView должен реализовать java.io.Serializable интерфейса

0

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

0

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

Смежные вопросы