Получение списка объектов в режиме гибернации возвращает список одного объекта

#hibernate #jakarta-ee #hql

#спящий режим #джакарта-ee #hql

Вопрос:

Я использую режим гибернации в своем приложении Spring Java EE. Я получаю список пользователей, где User является компонентом, указанным в applicationContext.xml следующим образом:

     <property name="annotatedClasses">
        <list>
            <value>foo.bar.User</value>
        </list>
    </property>
  

Код, который возвращает список пользователей, следующий; возвращаемый список имеет правильный размер, однако все объекты кажутся одним и тем же объектом (я распечатываю объекты в моем файле JSF с помощью ui: repeat .

 public List<User> getAllUsers() {

    Query q = currentSession().createQuery("from User");

    List<User> allUsers = (List<User>) q.list();

    return allUsers;

}
  

Я подозреваю, что пользователь возвращается один раз, однако не может решить проблему.

Как я могу выполнить запрос в режиме гибернации, чтобы вернуть все объекты?

Комментарии:

1. Код гибернации выглядит нормально. Что он печатает, если вы регистрируете все идентификаторы возвращенных пользователей? В вашей логике JSF может быть что-то не так.

2. Большое спасибо, код гибернации действительно правильный, я нашел свою проблему, хотя это довольно неловко; поскольку это глупая ошибка. Смотрите мой комментарий ниже.

Ответ №1:

Проблема заключалась в том, что я изменил значение первичного ключа, которое было user_id на id . Это привело к тому, что в столбце id были установлены все нули, следовательно, он всегда возвращал 0-й объект.