佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1329|回复: 2

[Java][EJB3]Persist 与 Merge 的分别

[复制链接]
发表于 31-5-2008 07:01 PM | 显示全部楼层 |阅读模式
本来以为persist 是 add , merge 是 update 。 突然看到code 不是这回事。

上网查询, 里面有说到关系到deteched object, persist 是 add , merge 可以是 add 或者 update 读了更加一头雾水。

各位高手是否可以以比较通俗的database programming 的 词汇来解释下 persist 与 merge 的分别, 和几时用persist ,几时用merge 会比较合适。

还有 merge 的话, 需要先 find 吗?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 31-5-2008 07:55 PM | 显示全部楼层
忘了,还有一个问题。

@PrePersist, @PostPersist ...etc , 这些call back function , 如果是merge 的话, 会不会 trigger ?
回复

使用道具 举报

发表于 2-6-2008 01:49 PM | 显示全部楼层

回复 2# jangancari 的帖子

恩 如果没有错的话

persist是add

然后在普通的情况下
entity在被find出来之后是managed的
只要我们改里面的value 不需要做什么就直接update到database去
可是有时候我们需要把这个entity送到给前面的jsp或者什么的去update,然后才拿回来update database
这个时候 我们就要detach这个entity,可以用clear
detached entity如果要从entity update database,就用merge
detached entity如果要从database update entity,就用refresh

@PrePersist 和 @PostPersist是persist的callback
merge的是@PreUpdate和@PostUpdate
所以merge应该不会triggle @PrePersist, @PostPersist的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 27-12-2025 04:07 PM , Processed in 0.132755 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表