问题描述
超脱实体的含义是什么。在我的课程中,接下来是Spring Framework Guru。我们做了一个DTO,这是否意味着当您从db中获取数据然后在DTO中将其转换为Detached Entity吗?
解决方法
分离实体是JPA提供程序不能反映其状态的实体。
换句话说,如果您更改其状态(即通过setter方法),则这些更改将不会保存到基础数据库中,因为JPA提供程序不必“观察”此类实体。
如果实体E1是受管实体,则可以使其分离(调用(非常合理的命名))方法EntityManager#detach(E1)。您还可以使用EntityManager#clear()来清除整个PersistenceContext并有效地使所有托管实体分离。
,前段时间,我写了一个blog article on this general subject来帮助回答这个问题,我把它作为一个单独的答案发布在这里,只是因为它是从稍微不同的角度讨论主题的。