hibernate hql 获得插入数据自动增长序列号

good_dou 2009-08-14 10:06:21
在hibernate 中插入一条数据
有没有一个函数可以获得插入数据自动增长序列号的????
...全文
1321 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
andesen 2009-08-20
  • 打赏
  • 举报
回复
顶楼上
化外之民 2009-08-14
  • 打赏
  • 举报
回复
像这种自动增长的ID在数据库中一般是通过序列来实现的。
写一个存储过程专门访问那个序列得到下一个序列号。
这样程序每次调用那个存储过程得到下一个ID
【如鱼饮水】 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lastsweetop 的回复:]
插入数据会返回ID的//正确
[/Quote]
zhang_yu_QIN 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 landor2004 的回复:]
引用 1 楼 lastsweetop 的回复:
插入数据会返回ID的

正确,插入之后,序号就已经背回填了
[/Quote]

正解。。顶,。
blliy117 2009-08-14
  • 打赏
  • 举报
回复
用hibernate了要取得这个ID是很容易的


session.save(obj);//保存

obj.getId(); //这样就取得了
terry0613042089 2009-08-14
  • 打赏
  • 举报
回复
自动增长要分情况而定。不同的数据库,有着不同的方法。有人说,用了序列。其实序列是oracle有的方式。mysql可以自己增加。还有不管什么数据库都可以用的自动增加的配置方法(其是根据数据库方言来自动选择的),你可以看看资料
长公子冰 2009-08-14
  • 打赏
  • 举报
回复
Hibernate设置了主键的生成方式,如果你使用了increment,即自增长,每次hibernate会自动加1.而且为了提高效率它会缓存下一个ID的值,比如当前ID是10,那么下一个就是11了,此时你手动向数据库里增加一条ID为11的记录后,再用hibernate加一条记录,马上会报错,主键重复,这就是因为hibernate缓存了下一个ID,有时候删除也会出错。
Landor2004 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lastsweetop 的回复:]
插入数据会返回ID的
[/Quote]
正确,插入之后,序号就已经背回填了
吴冬冬 2009-08-14
  • 打赏
  • 举报
回复
插入数据会返回ID的
sangshusen_1988 2009-08-14
  • 打赏
  • 举报
回复
对象被保存后,id已经被回填到对象中了
kwj1111 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 icewee 的回复:]
Hibernate设置了主键的生成方式,如果你使用了increment,即自增长,每次hibernate会自动加1.而且为了提高效率它会缓存下一个ID的值,比如当前ID是10,那么下一个就是11了,此时你手动向数据库里增加一条ID为11的记录后,再用hibernate加一条记录,马上会报错,主键重复,这就是因为hibernate缓存了下一个ID,有时候删除也会出错。
[/Quote]

不错。。这难道不是对的么?
chenlei65368 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lastsweetop 的回复:]
插入数据会返回ID的
[/Quote]

这是对的

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧