日期:2014-05-20  浏览次数:20823 次

在Hibernate中,这个该怎么设置主键和标识
现在有这么一个问题,就是在设计表格的时候
我有一个设备表,保存设备的基本信息
其中有一个OID,用于记录当前的记录数
另有一个deviceID,用于标识该设备的ID号
并且deviceID是从外面获得,即是从外部取得的唯一身份标识
而且搜索设备的时候根据该deviceID查找
就像在session中session.get(Device.class, deviceID);
请问这样可以实现吗?或者怎么实现...~
反复试了几种设置,现在还是不能达到预期的效果,求助~~

------解决方案--------------------
OID设为代理主键,deviceID设成唯一、不空的就可以了吧
不知道有没有正确理解楼主的意思
------解决方案--------------------
你的deviceID肯定是一个外键了,
所以你用session.get(Device.class, deviceID);根本就是不正确的.
里面的第二个参数应该是这项记录的id,也就是主键,
建议另外设置主键.
------解决方案--------------------
你应该这样,OID是标识列,但不是主键,把DEVICEID作为主建不就行了吗
然后就可以用GET()方法了
------解决方案--------------------
插入的时候,分配一个oID
------解决方案--------------------
你不是已经删除OIDl了么?好像你没有在*.HBM.XML里面删除掉OID,去掉那个节点就可以了



deviceID作为主键可以用外键的生成形式,做个onetoone,这样就不用手动添加主键了