首页 > 解决方案 > 如果我使用 new 运算符创建实体实例并手动设置其 id(PK) 然后尝试持久化它(调用 EM#persist())会发生什么?

问题描述

如果我使用 new 运算符创建实体实例并手动设置其 id(PK) 然后尝试持久化它(调用 EntityManager#persist())会发生什么?

请问您能否详细说明实体状态?

标签: javahibernatejpapersistence

解决方案


为实体手动分配主键并没有什么特别之处。如果调用persist,它将进入托管实体状态。在事务结束时,INSERT将执行一个查询(如果您EntityManager之前没有手动刷新)。

我建议阅读这篇文章以使其更清楚。


推荐阅读