#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-й объект.