2011-07-02 14 views
1

私はSQLのDistinct状態を取得しようとしていますが、Hibernateでは正しく機能していません。アラスカは6回(SQLでは6回ありますが、のみ)distinct節がHibernateで正しく動作していない

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

あなたは、あなたのデータベースに異なるIDを持つそれぞれを6つの異なるアラスカ州を持っている、とあなたが明確なものを求める場合には、もちろんあなたは6つのものを得るでしょう。それらは異なるIDを持つため、区別されます。

異なる州名をロードできますが、StatesProvicesインスタンスではなくStringインスタンスを取得できます。

この問題を解決するには、データをクリーンアップし、特定の国の名前が付いた複数の州がテーブルに含まれていないことを確認してください。

関連する問題