【发布时间】:2015-05-26 15:25:06
【问题描述】:
在Spring DataRepository接口中,定义了如下操作:
public T save(T entity);
...文档声明应用程序应继续使用返回的实体。
我知道这个决定背后的reasoning,这是有道理的。我还可以看到,这对于具有独立实体的简单模型非常有效。但考虑到具有大量@OneToMany 和@ManyToMany 连接的更复杂的JPA 模型,就会出现以下问题:
当所有加载的模型的其余部分仍然引用传递给save(...) 的旧模型时,应用程序应该如何使用返回的对象?此外,应用程序中可能存在仍包含旧实体的集合。 JVM 不允许全局“交换”未保存的实体与已保存的实体。
那么正确的使用模式是什么?有什么最佳实践吗?到目前为止,我只遇到过不使用@OneToMany 或@ManyToMany 的玩具示例,因此不会遇到这个问题。我敢肯定,很多聪明人对此深思熟虑,但我不知道如何正确使用它。
【问题讨论】:
标签: spring spring-data spring-data-jpa