1

我正在尝试从我的 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();
4

1 回答 1

1

如果您的数据库中有 6 个不同的阿拉斯加省份,每个省份都有不同的 ID,并且您要求不同的省份,那么您当然会得到 6 个。它们是不同的,因为它们具有不同的 ID。

您可以加载不同的省份名称,但您将获得 String 实例,而不是 StatesProvices 实例。

解决方法可能是清理您的数据,并确保使用唯一约束确保该表不包含多个具有给定国家名称的省份。

于 2011-07-02T09:04:07.557 回答