Hibernate标准投影JList

时间:2013-07-22 13:52:34

标签: hibernate jlist projection hibernate-criteria

我有一个带有JList的gui,它应该包含一个没有重复的个性的所有字段和值categories1 categories2,并按字母顺序排序。

为此,我使用了一个带有条件和投影的方法

public List<TPersonalities> findAllCategories(){
    getSession().beginTransaction();
    Criteria criteria = getSession().createCriteria(TPersonalities.class);
    ProjectionList projList = Projections.projectionList().add(Projections.property("category1")).add(Projections.property("category2"));
    criteria.setProjection(projList);
    criteria.addOrder( Property.forName("category1").asc()).addOrder( Property.forName("category2").asc());
    return criteria.list();
}

以下是PersonalitiesController中的方法显示findAllCategorie()的结果:

public void setJListForCategories(List<TPersonalities> personalitiesListCat, JList listCategories){
       DefaultListModel modelList = new DefaultListModel();
       for(int i = 0; i < personalitiesListCat.size(); i++){
            modelList.addElement(personalitiesListCat.get(i));
       }

        listCategories.setModel(modelList);
        setListNames(listCategories);
}

问题是,当我运行应用程序进行测试时,它会显示对象的地址,样式:[Ljava.lang.Object; @ 4a9c1114 ... 我该怎么做才能解决这个问题?

提前谢谢

2 个答案:

答案 0 :(得分:0)

只需向toString()添加TPersonalities方法,例如:

@Override
public String toString() {
    return parameterOfTPersonalities;
}

答案 1 :(得分:0)

Re ..现在我尝试在findAllCategories()上检索所有关注类别2并且没有问题,但现在我只有category1而没有category2值,并且有一些重复......

这是代码:

public List<TPersonalities> findAllCategories(){
    getSession().beginTransaction();
    Criteria criteria = getSession().createCriteria(TPersonalities.class);
    ProjectionList projList = Projections.projectionList().add(Projections.property("category1"));//.add(Projections.property("category2"));

    criteria.setProjection(projList);
    criteria.addOrder( Property.forName("category1").asc());//.addOrder( Property.forName("category2").asc());
    return criteria.list();
}
相关问题