JPA 实体序列生成

JPA entity sequence generating

提问人:LearnCode Master 提问时间:2/12/2020 更新时间:2/12/2020 访问量:134

问:

在Spring Boot JPA中,我尝试实现序列生成器,但它不起作用。 以下是我的实体

@Entity
@Table(name = "role_level")
public class RoleLevel implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    @Id
    @SequenceGenerator(name = "role_level_sequence", sequenceName = "role_level_id_seq",allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "role_level_sequence")
    @Column(name = "id", updatable = false)
    private Long id;

    @Column(name = "role_level")
    private String roleLevel;

    @Column(name = "role_level_description")
    private String roleLevelDescription; 


   //getters and setters

}

当我直接通过数据库插入值时,数据库中的下一个序列没有进入 jpa.it 显示

org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "role_level_pkey"
  Detail: Key (id)=(7) already exists.

但是控制台显示

Hibernate: select nextval ('role_level_id_seq')

我认为它不起作用。 有什么解决方案吗?

PostgreSQL spring-boot JPA 序列

评论

0赞 Arun Prasat 2/12/2020
您可以尝试此选项 stackoverflow.com/questions/2595124/...
0赞 LearnCode Master 2/12/2020
这个问题没有经过验证的答案
0赞 Arun Prasat 2/12/2020
尝试在 postgre 控制台中生成序列“SELECT nextval('serial')”,并检查它是否返回正确的序列,并检查没有手动添加的记录。一切都很好,请删除 strategy = GenerationType.SEQUENCE 并尝试,因为您正在要求模式生成器为您生成序列,您也在尝试获取序列,所以任何人都可以。
0赞 Abdullah Khan 2/12/2020
你为什么有?updatable = false
0赞 Bourbia Brahim 2/12/2020
那么当你插入postgres db端时有问题吗?它工作在应用程序端?

答: 暂无答案