【问题标题】:Distinct error java.lang.Integer cannot be cast to model class不同的错误 java.lang.Integer 无法转换为模型类
【发布时间】:2014-05-05 21:13:36
【问题描述】:

我想在休眠中进行不同的查询 这是我的 DaoImpl

   @SuppressWarnings("unchecked")
    public List<ModelNilai> getListNilaiAwal(Integer page, Integer id, Integer idm) {
        // TODO Auto-generated method stub
        List<ModelNilai> list = new ArrayList<ModelNilai>();
        Disjunction dis = Restrictions.disjunction();

        dis.add(Restrictions.eq("mahasiswa.id", id));


        Criteria c = getCurrentSession().createCriteria(ModelNilai.class);

        c.createAlias("makul","m");

        c.setProjection(Projections.property("id"));
        c.setProjection(Projections.distinct(Projections.property("m.id")));
        c.add(dis);

        if(page!=null){
            c.setFirstResult((page-1)*LISTSIZE);
        }

        /*Mengurutkan data yang dipilih berdasar id secara Descending*/
        c.addOrder(Order.desc("id"));

        /*Menentukan jumlah baris data dari tabel yang di pilih*/
        c.setMaxResults(LISTSIZE);

        list.addAll(c.list());

        if(page==null){
            setTotalPage(c);
        }
        return list;
    }

这里是我的 ModelNilai

@ManyToOne
    @JoinColumn(name="id_makul")
    private ModelMakul makul;

模型模型

 @OneToMany(mappedBy="makul",cascade=CascadeType.ALL)
        @JsonIgnore
        private Set<ModelNilai> nilai;

当我跑步时,,, 它进行此查询

    Hibernate: select distinct m1_.id_makul as y0_ from tbl_nilai this_ inner join tbl_makul m1_ on this_.id_makul=m1_.id_makul where (this_.id_mhs=?) order by this_.id_nilai desc limit ?
Hibernate: select count(*) as y0_ from tbl_nilai this_ inner join tbl_makul m1_ on this_.id_makul=m1_.id_makul where (this_.id_mhs=?) order by this_.id_nilai desc limit ?

然后发生错误 java.lang.ClassCastException:java.lang.Integer 无法转换为 id.ac.undip.mlearning.model.ModelNilai

我哪里出错了?我认为查询是正确的,但为什么它总是给我这个错误? 请帮忙,

【问题讨论】:

    标签: hibernate distinct


    【解决方案1】:
    c.setProjection(Projections.distinct(Projections.property("m.id")));
    

    告诉hibernate返回一个ID列表,它将是List&lt;Integer&gt;。您正在尝试将结果添加到 List&lt;ModelNilai&gt;

    【讨论】:

    • 谢谢,,,我现在知道怎么了,你能告诉我如何做不同的投影吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多