休眠条件投影JList



我有一个带有JList的gui,它应该包含所有字段和值​​类别一个人的类别2,没有重复,按字母顺序排列。

为了做到这一点,我使用了一种带有标准和投影的方法

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。。。我能做些什么来解决这个问题???

提前感谢

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

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

关于。。现在我尝试在findAllCategories()上检索所有与category2有关的内容,没有问题,但现在我只有category1,没有category20值,并且存在一些重复。。。

这是的代码

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();
}

最新更新