我试图从我的SQL中获得美国的独特状态,但其独特的功能在Hibernate中无法正常工作,如Alaska将要出现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();
答案 0 :(得分:1)
如果您的数据库中有6个不同的阿拉斯加省,每个省都有不同的ID,并且您要求不同的省,当然您将获得6个省。它们是不同的,因为它们具有不同的ID。
您可以加载不同的省名,但是您将获得String实例,而不是StatesProvices实例。
修复可能是为了清理您的数据,并确保使用一个唯一的约束条件,该表不会包含多个具有给定国家/地区特定名称的省。