持久层:Jpa

业务模块新增数据时报错如下:

A different object with the same identifier value was already associated with the session :
 [com.xxx.domain.ExamUserSchPrjRel#0]; 
 nested exception is javax.persistence.EntityExistsException: 
 A different object with the same identifier value was already associated with the session :
  [com.xxx.domain.ExamUserSchPrjRel#0]

导致原因:是由于实体类未配置自增策略(表主键是自增策略)

实体类解决如下:(新增@SequenceGenerator、@GeneratedValue)

    /**
     * @Description: TODO 
     * pg通过序列自增(类似oracle序列自增)sequenceName要对应创建表中指定的序列
     * @Author: zs
     * @Date: 2020/8/13 13:59
     */
    @Id
    @SequenceGenerator(sequenceName = "exam_user_sch_prj_rel_id_seq", name = "exam_user_sch_prj_rel_seq")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "exam_user_sch_prj_rel_seq")
    //@Column(name = "id")
    public int getId() {
        return id;
    }

更多推荐