springdataJpa oracle中自定生成Long类型的主键值

1.首先在实体类中主键上加入如上注解

@Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE,generator ="mysequence")
    @SequenceGenerator(name = "mysequence",sequenceName = "t_zm_sequence",allocationSize = 1)
    @Column(name = "id")
    private Long id;

其中sequenceName是真正的数据库中的序列,基本创建方法如下

create sequence emp_id_seq

start with 1

increment by 1

nomaxvalue

nominvalue

nocycle

nocache;

记得指定下allocationSize也就是步长,如果不指定的话默认时50,这样即使在创建序列的时候指定了步长但是它还是会在当前的序列的值上乘以50

  1. 如果是通过调用继承的JpaRepository接口中的save方法的话,不需要加入其它的处理,如果是自定义的查询需要在
    @Query上添加@Modify,并在调用的的方法上加上@Tranditional

你可能感兴趣的:(springdataJpa oracle中自定生成Long类型的主键值)