Отдельный пункт не работает должным образом в спящем режиме

Я пытаюсь получить отчетливые штаты США из моего SQL, но его отличная функциональность не работает должным образом в Hibernate, как, например, Аляска приезжает 6 раз (она присутствует в SQL 6 раз, но я хочу только разные)

   StatesProvinces statesProvinces = new StatesProvinces();
    ArrayList<StatesProvinces> allStates = new ArrayList<StatesProvinces>();
    ArrayList<String> states = new ArrayList<String>();
    Session session = sessionFactory.openSession();

    Criteria crit = session.createCriteria(StatesProvinces.class);
    crit.add(Restrictions.eq("country", country));
    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    List rsList = crit.list();

1 ответ

Решение

Если в вашей базе данных есть 6 разных провинций Аляски, каждая с разным идентификатором, и вы запрашиваете разные, конечно, вы получите 6. Они различны, так как имеют разные идентификаторы.

Вы можете загрузить разные имена провинций, но вы получите экземпляр String, а не экземпляры StatesProvices.

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

Другие вопросы по тегам