hibernate插入数据后怎么返回数据的主键

hibernate插入数据后怎么返回数据的主键,第1张

hibernate向mysql插入一条数据后,得到该条数据主键的方法。我的主键是自增长的。

方法一:保存完成后,直接用该实体的getId的方法就可以得到。因为保存完成后,hibernate会自动将id赋值给实体。关键代码如下:

iUserMessageDaosave(userMessage);

int id = (int) userMessagegetId();

如果主键是Guid,数据库给主键列以newid()的默认值,EF也会将主键值返回并更新模型的对应属性的,前提是要在EF中Mapping类中要设置

thisProperty(t => tTipID)HasDatabaseGeneratedOptio(DatabaseGeneratedOptionIdentity);

此时生成的SQL语句和自增长的有所不同

exec sp_executesql N'declare @generated_keys table([TipID] uniqueidentifier)

insert [dbo][Tips]([Description])

output inserted[TipID] into @generated_keys

values (@0)

select t[TipID]

from @generated_keys as g join [dbo][Tips] as t on g[TipID] = t[TipID]

where @@ROWCOUNT > 0',N'@0 nvarchar(max) ',@0=N'testing'

注意:这里定义了一个表变量@generated_keys,插入的时候将id输出给@generated_keys表的字段,

这里values (@0)是针对insert [dbo][Tips]([Description]) 而言的,先执行insert

再执行output inserted[TipID] into @generated_keys 将插入的id输出到@generated_keys 中

EF真的是太强大了,可以模仿EF生成SQL语句,这极大地提升本人写SQL的水平,Entity Framework生成的SQL是很有水平的!

这样就可以返回刚新插入的主键值!

以上就是关于hibernate插入数据后怎么返回数据的主键全部的内容,包括:hibernate插入数据后怎么返回数据的主键、sql 获取当前插入的主键 表主键是guid类型的、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9617494.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存