merge()
方法的工作:
merge(源实体)方法将把分离的实体状态(源)复制到托管实体实例(目标)。如果合并实体在当前会话中没有等效项,则将从数据库中获取一个实体。即使在合并操作之后,分离的对象实例仍将继续保持分离状态。
我的问题是:
为什么merge()
方法将分离的实体状态复制到托管实体,而不仅仅是将相同的分离的实体传递给持久性上下文?
答案 0 :(得分:0)
<T> T merge(T entity)
方法是根据JPA规范实现的。 https://docs.oracle.com/javaee/7/api/javax/persistence/EntityManager.html#merge-T-
返回:
状态被合并到的托管实例
至:
为什么不将相同的分离实体传递给持久性上下文
这就是它的作用。并且为了合并数据,创建(或从缓存中获取)受管实体,然后对其进行更新并返回。