使用criteria按复合主键某个字段条件查询的问题
时间:2008-07-25 22:31:49
来源:论坛整理 作者: 编辑:chinaitzhe
- Java code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ Criteria criteria = session.createCriteria(ZYxaqStationSignalXy.class); criteria.add(Expression.eq("id.jkdataId",jkdataId)); criteria.add(Expression.eq("id.jiaoluNo",jlh)); criteria.add(Expression.eq("id.sxx",sxx)); Iterator it= criteria.list().iterator();
其中pojo类ZYxaqStationSignalXy中有复合主键ZYxaqStationSignalXyId id, ZYxaqStationSignalXyId的类型如下:
- Java code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ private Long jkdataId; private Long jiaoluNo; private Long sxx; private Long stationNo; private Long signalType;
当执行到 Iterator it= criteria.list().iterator(); 时报错:"java.lang.ClassCastException"
,换成hql查询就没有问题:
- Java code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ String hql = "from ZYxaqStationSignalXy as p where p.id.jkdataId=:jkDataId and p.id.jiaoluNo=:jlh and p.id.sxx=:sxx"; Query q = session.createQuery(hql); q.setString("jkDataId", jkdataId); q.setString("jlh", jlh); q.setString("sxx", sxx); List list = q.list();
请问是怎么回事?会不会是类型问题,复合主键的类是long,用eq方法是不是不行?
网友回复:是类型的问题,感觉应该是与数据库中的类型不匹配
网友回复:数据库中确实是数字型啊
网友回复:该回复于2008-05-01 05:44:22被版主删除
关键字:使用,criteria,复合,主键,字段,条件,
上一篇:帮我看看这是什么错
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面