|
查看: 1328|回复: 2
|
[Java][EJB3]Persist 与 Merge 的分别
[复制链接]
|
|
|
本来以为persist 是 add , merge 是 update 。 突然看到code 不是这回事。
上网查询, 里面有说到关系到deteched object, persist 是 add , merge 可以是 add 或者 update 读了更加一头雾水。
各位高手是否可以以比较通俗的database programming 的 词汇来解释下 persist 与 merge 的分别, 和几时用persist ,几时用merge 会比较合适。
还有 merge 的话, 需要先 find 吗? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 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的 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|