当前位置:编程学习 > JAVA >>

请教关于hibernate里面代理主键的问题

问题描述如下:
我定义了一个User类和对应的表USER,用的是代理主键id,现在我想查询表中的某一条记录,我自己看书说可以用session.get()或者HQL来进行查询,但都要提供代理主键id,我想问的是,代理主键我又不知道是多少,那怎么去查询呢?难道每个user的代理主键id是要记住的?就像自然主键那样要记住的? --------------------编程问答-------------------- 什么叫“代理主键”啊? --------------------编程问答-------------------- 感觉你说的应该是延迟加载吧。 --------------------编程问答-------------------- 比如说一个User类,三个属性:id(代理主键),username,password。我在写登录校验的时候是用username和password来判定登录。但是当我要查询某一个user时难道也要用username来查?我感觉不对的吧,username不是主键总不能默认没有重复的username吧? --------------------编程问答-------------------- 很简单啊。 用hql不就完了。 你的结贴率太低了。 我就不详细回答了。 --------------------编程问答-------------------- hql不是也要提供代理主键值的嘛? --------------------编程问答--------------------
引用 5 楼 hotsizzle183 的回复:
hql不是也要提供代理主键值的嘛?


别瞎说,看看hibernate官方文档。 --------------------编程问答-------------------- 哦对的,HQL不需要的,但是用HQL怎么写呢? --------------------编程问答-------------------- 代理主键是不用记的,查询的时候,作username来查就行了。
Query query=session.creatquery(from User u where username:=username);
query.setString("username","用户名") --------------------编程问答-------------------- 楼主刚入门吧 不要想着用hibernate完成增删改查就调用 save delete saveorupdate方法就可以 还可以用HQL QBC QBE 实现不行用native SQL解决的办法好多 多看文档吧 --------------------编程问答-------------------- 不用记住。
打个很简单的比如。
一般在做项目的时候,要查询某个客户的信息,首先你得找到这个客户。
那么你就必须在数据库中去查询这个客户,你可以根据“名称“找到客户。那么这个客户custom对象。
就已经有id。 那你要查询这个客户的其它信息,鼠标点击查询就可以通过custom.getId()找到主键。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,