Проблема с Hibernate findById - PullRequest
0 голосов
/ 22 июля 2010

имеют особую проблему с гибернацией. У меня есть функция гибернации, как это.

@SuppressWarnings("unchecked")
public List<AppResponse> findByResponseId(long requestId) {
  return (List<AppResponse>) jdbcReference.getSessionFactory().getCurrentSession()
        .createCriteria(AppResponse.class).add(Restrictions.eq("requestId",requestId))
        .list();
 }

И это должно вернуть список с 4 " AppResponses " для requestId = say ' 1234 '. Функция, как и ожидалось, возвращает список с четырьмя объектами AppResponse. Но проблема в том, что все 4 объекта представляют одну и ту же строку. Я не получаю 4 разных объекта (по одному на строку). Кто-нибудь сталкивался с такой проблемой.? В чем может быть проблема?

1 Ответ

2 голосов
/ 22 июля 2010

«id» заставляет меня думать «первичный ключ». Вы не должны возвращать список чего-либо в этом случае - это либо уникальный объект, либо ничего.

Ваш "1234" звучит как кандидатная клавиша, которая не делала первичный ключ. Он должен иметь индекс и извлекаться с использованием запроса с предложением WHERE.

ОБНОВЛЕНИЕ: Правильно ли вы переопределили equals и hashCode? Когда вы говорите, что они представляют одну и ту же строку, это говорит мне о том, что либо в вашей таблице есть дублированные данные (ничего уникального в отношении объектов, кроме «идентификатора», который вы цитируете), либо вы неправильно реализовали equals и hashCode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...