【问题标题】:Hibernate criteria projection JListHibernate 标准投影 JList
【发布时间】:2013-07-21 07:02:09
【问题描述】:

我有一个带有 JList 的 gui,它应该包含一个个性的所有字段和值类别 1 类别 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 ... 我该怎么做才能解决这个问题???

提前谢谢你

【问题讨论】:

    标签: hibernate jlist projection hibernate-criteria


    【解决方案1】:

    只需在TPersonalities 中添加一个toString() 方法如:

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

    【讨论】:

    • 您好,谢谢您的回复....我忘了提到我已经覆盖了 toString ....并且没有任何变化...这是代码:
    • '@Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append(this.nameKnow).append(", ").append(this.name) .append(", ").append(this.firstname).append(", ").append(this.dateDetails) .append(", ").append(", ").append(this.category2).append(", ") .append(this.dateDetails).append(", ")。 append(this.image).append(", ") .append(this.wikipediaLink).append(", ").append(this.websiteLink).append(", ") .append(this.description);返回 sb.toString(); }'
    【解决方案2】:

    Re..现在我尝试在我的 findAllCategories() 上检索所有与 category2 相关的内容,没有问题,但现在我只有 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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-06
      • 2013-08-14
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2015-07-17
      相关资源
      最近更新 更多