在hibernate中怎么按id查询,急!!!!

eyoexply 2004-05-07 12:57:34
一个数据库表有一个证件号的属性是主键,作为映射的id
查询的代码为:
String queryStr="from ExamineeInfo as examineeInfo where examineeInfo.cardid=:cardID";
query.setString("cardID",cardID);//cardID是一个表示证件号的参数
Iterator it=query.iterate();

hibernate抛出异常:cannot execute query

我的配置文件是
<class name="dao.ExamineeInfo" table="EXAMINEEINFO">
<id name="cardid" column="cardid" type="string" length="10">
<generator class="assigned"/>

表的id是可以自己输入的,增加记录的操作可以执行,但是就是不能按ID查询。
请高手指点!!
...全文
366 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lveyo 2004-05-14
难道是hibernate的问题?
  • 打赏
  • 举报
回复
onefox 2004-05-09
上次也是“id”的问题,我没有解决。


作后的理解是:

hibernate 中 "id" 有它自己的用处,
它用来做类的区分,涉及很多hibernate功能.

我后来是把类自己的 "id" 换了个名字,免得跟 hibernate 冲突
也可以自己用类的 "id" 作为 hibernate "id" 的产生条件,这样比较合理
但类的 "id" 也必须唯一,因为 hibernate "id" 需要设为“主键”
  • 打赏
  • 举报
回复
rex0y 2004-05-09
用setParameter(("cardID",cardID)
  • 打赏
  • 举报
回复
jspxnet 2004-05-09
sess.load( cat, Id);
  • 打赏
  • 举报
回复
rex0y 2004-05-08
public Query setParameter(String name,
Object val)
throws HibernateException
  • 打赏
  • 举报
回复
eyoexply 2004-05-08
楼上说的也不行啊!!
试过了,也显示cannot execute query
我直接用String queryStr="from ExamineeInfo as examineeInfo where examineeInfo.cardid='00001'";
查询就没有问题。
但是用
String queryStr="from ExamineeInfo as examineeInfo where examineeInfo.cardid=:cardID";
query.setString("cardID",cardID);//cardID是一个表示证件号的参数
就不行了,好像是cardID的值传不到查询语句里。
为什么呢?
  • 打赏
  • 举报
回复
eyoexply 2004-05-08
楼上能不能说的更详细一点?
  • 打赏
  • 举报
回复
shart 2004-05-07
根据id查询,这个不是更好?

Cat cat = new DomesticCat();
// load pk's state into cat
sess.load( cat, new Long(pkId) );
Set kittens = cat.getKittens();
  • 打赏
  • 举报
回复
java悠悠 2004-05-07
up
  • 打赏
  • 举报
回复
minghuitian 2004-05-07
gz
  • 打赏
  • 举报
回复
相关推荐
发帖
Java EE
加入

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2004-05-07 12:57
社区公告
暂无公告