社区
Java EE
帖子详情
hibernate save的时候怎么知道到底要Insert还是update?
chichenzhe
2017-04-24 07:20:05
hibernate save的时候怎么知道到底要Insert还是update?
难道首次去执行的时候 他还select一次?
...全文
635
4
打赏
收藏
hibernate save的时候怎么知道到底要Insert还是update?
hibernate save的时候怎么知道到底要Insert还是update? 难道首次去执行的时候 他还select一次?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
evanweng
2017-04-25
打赏
举报
回复
我记得是看有没有持久化,有持久化就会更新,没有持久化就会新增一个记录,而且id是自增的,指定了也没用
chichenzhe
2017-04-25
打赏
举报
回复
引用 1 楼 q54244125 的回复:
hibernate强制有个主键ID 根据id,有就update 没有就insert
不对, 这个ID是 程序要生成的 hibernate还是无法判定到底该做什么操作. 比如t1表: id, name, age javabean也有这3个变量 并且3个都已经赋值, 按理hibernate应该update 因为id已经赋值. 但是实际执行的是insert
GetIndex
2017-04-25
打赏
举报
回复
insert 操作之后 id 就不为空了!
天涯若风
2017-04-25
打赏
举报
回复
hibernate强制有个主键ID 根据id,有就update 没有就insert
Hibernate
的save()方法如何判断是
insert
还是
update
Hibernate
的save()方法如何判断是
insert
还是
update
之前大概了解在使用save()方法的时候,要是执行更新操作,就先查再调用save();要是执行插入操作,就新建一个对象,将属性赋值,再调用save()方法。 今天研究了下save方法的源码,如下 public T save(T entity) throws DataAccessException { if(entity.isNew()) { this.pre
Insert
(entity);
Hibernate
的各种保存方式的区别 (save,persist,
update
,saveOrUpdte,merge,flush,lock)等
hibernate
的保存
hibernate
对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别: 一、预备知识: 在所有之前,说明一下,对于
hibernate
,它的对象有三种状态,transient、persistent、detached 下边是常见的翻译办法: transient:瞬态或者自由态 persistent:持久化状态 detache
Hibernate
三种状态的区分,以及save,
update
,saveOr
Update
,merge等的使用
Hibernate
的对象有3种状态,分别为:瞬时态(Transient)、持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。瞬时态 由new命令开辟内存空间的java对象, eg. Person person = new Person
hibernate
保存会先
insert
再
update
_
Hibernate
的批处理
考虑一种情况,你需要使用
Hibernate
将大量的数据上传到你的数据库中。以下是使用
Hibernate
来达到这个的代码片段:Session session = SessionFactory.openSession();Transaction tx = session.beginTransaction();for ( int i=0; i<100000; i++ ) { Employe...
hibernate
的save,persis,
update
,saveOrUpdte,merge,flush,lock等区别
一,比较merge与
update
的区别首先, merge作用大致相当于saveor
update
这个方法, 即有唯一性标识, 则运行save, 没有则运行
update
下面来比较2者的区别,
update
(object), 方法运行后, object是持久化状态, 而Object obj = merge(object), 方法运行后, object是脱管状态, obj是持久化状态
Java EE
67,535
社区成员
225,843
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章