问题描述如下:
我定义了一个User类和对应的表USER,用的是代理主键id,现在我想查询表中的某一条记录,我自己看书说可以用session.get()或者HQL来进行查询,但都要提供代理主键id,我想问的是,代理主键我又不知道是多少,那怎么去查询呢?难道每个user的代理主键id是要记住的?就像自然主键那样要记住的?

解决方案 »

  1.   

    比如说一个User类,三个属性:id(代理主键),username,password。我在写登录校验的时候是用username和password来判定登录。但是当我要查询某一个user时难道也要用username来查?我感觉不对的吧,username不是主键总不能默认没有重复的username吧?
      

  2.   

    很简单啊。 用hql不就完了。 你的结贴率太低了。 我就不详细回答了。
      

  3.   

    hql不是也要提供代理主键值的嘛?
      

  4.   


    别瞎说,看看hibernate官方文档。
      

  5.   

    哦对的,HQL不需要的,但是用HQL怎么写呢?
      

  6.   

    代理主键是不用记的,查询的时候,作username来查就行了。
    Query query=session.creatquery(from User u where username:=username);
    query.setString("username","用户名")
      

  7.   

    楼主刚入门吧 不要想着用hibernate完成增删改查就调用 save delete saveorupdate方法就可以 还可以用HQL QBC QBE 实现不行用native SQL解决的办法好多 多看文档吧
      

  8.   

    不用记住。
    打个很简单的比如。
    一般在做项目的时候,要查询某个客户的信息,首先你得找到这个客户。
    那么你就必须在数据库中去查询这个客户,你可以根据“名称“找到客户。那么这个客户custom对象。
    就已经有id。 那你要查询这个客户的其它信息,鼠标点击查询就可以通过custom.getId()找到主键。