这个问题通常会出现在手动分配id的情况下。如果为一个实体分配了一个在数据库中已存在的id,那么在保存该实体时,Hibernate就会发出查询以查找具有相同id的现有实体,并将其与要保存的实体进行比较。如果找不到现有实体,则会抛出JpaObjectRetrievalFailureException异常。
要解决这个问题,需要使用@Generated挂钩来生成一个新的id。通过将@GeneratedValue(strategy = GenerationType.IDENTITY)与@Id注释一起使用,可以在进行持久化操作时自动生成id。例如:
@Entity public class ParentEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
//... }
这将确保每个实体都具有唯一的id,并且在进行持久化操作时不会出现重复的id问题。
上一篇:保存带有文本日志的路径文件
下一篇:保存带有拥有属性的实体