hibernate 使用原生sql执行 insert 插入数据时,怎么才能得到自动增长主键的id?

 我来答
Jarhf
2011-08-29 · TA获得超过1862个赞
知道小有建树答主
回答量:1736
采纳率:25%
帮助的人:1017万
展开全部
在你调用 save方法后,你的对象的 自增列id会自动被 赋值
本来新加的id在 save之前是0,save之后,xxx .id你自动被修改成数据库中生生成的id
亢白梅Cq
2012-05-05
知道答主
回答量:2
采纳率:100%
帮助的人:3万
展开全部
如果插入数据的用户是唯一标识的话,可以在插入完成之后,去检索该用户插入的数据,比较id,那个最大的id即刚才插入数据的id。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdzdxuejinyu
2011-08-29
知道答主
回答量:25
采纳率:0%
帮助的人:35.1万
展开全部
A a=new A();要是用save(a)的方法,save后,便可以通过 a.getId() 就可以找到了。
就像楼上说的,你要是用原生的方法insert的话,id应该是你自己赋的值的啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杭州挑志愿
2011-09-10
知道答主
回答量:3
采纳率:0%
帮助的人:5030
展开全部
字段名 int identity(1,1) primary key identity(1,1)中第一个1表示自动增长从1开始,第二个1表示每次增长多少。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友eafe715dc
2011-08-29 · TA获得超过1490个赞
知道小有建树答主
回答量:763
采纳率:50%
帮助的人:635万
展开全部
我很奇怪啊,你都说是原生sql了,就是说你自己手写的sql。这样的话,你的主键应该是用的自己生成的值把,这你还拿不到?
比如你先用sequence生成个主键,然后把值拼到你的sql中,然后执行。没问题啊。。。
追问
@Override
public boolean insertSQLQuery(String sql, Object... params)
throws JDBCException {
Query query = getSession().createSQLQuery(sql);
for (int i = 0; params != null && i 0 ? true : false;
}
这样能取道?我数据库id配置是自动增长的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式