отдельный пункт не работает должным образом в спящем режиме - PullRequest
1 голос
/ 02 июля 2011

Я пытаюсь получить отчетливые штаты США из моего 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 Ответ

1 голос
/ 02 июля 2011

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

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

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

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