发生这个原因是因为我们已经在实体类用JPA注解指定了主键的生成策略主键就不能设置了,一旦不为空或者0就被认为是已经保存到了数据库中,一旦调用persist()方法就会抛出上面的异常
把0去掉,如下图:
转载自:jpa遇到的 org.hibernate.PersistentObjectException: detached entity passed to persist异常
我自己的经历是写java ee,junit测试的时候没有报错,直接停止,直接运行网页的话,也是直接跳转到错误页,逻辑不能执行,之后debug junit测试才有这个错误提示出现,最后百度,找到答案,试过设置成0,或者按照上面没有设置,最后设置为null才正常插入成功了
xx.setId(null);