Отдельный пункт не работает должным образом в спящем режиме
Я пытаюсь получить отчетливые штаты США из моего 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.
Исправление, вероятно, состоит в том, чтобы очистить ваши данные и убедиться с уникальным ограничением, что таблица никогда не содержит более одной провинции с заданным именем для данной страны.