【发布时间】:2017-01-20 02:47:57
【问题描述】:
我需要在我的数据库中插入一条记录,但在某些情况下我需要传递 ID,但是当我手动插入我的 id 时,spring-boot 不会使用此 ID 保存,spring-boot 会从序列
这是我的实体
@Entity
@Table(schema = "db_cartorio_inteligente", name = "tb_movimentacao")
@SequenceGenerator(sequenceName="db_cartorio_inteligente.tb_movimentacao_seq", name = "tb_movimentacao_seq")
public class TbMovimentacao {
@Id
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator = "tb_movimentacao_seq")
private Long idMovimentacao;
这是我要保存的代码:
TbMovimentacao novaMovimentacao = new TbMovimentacao();
novaMovimentacao.setIdMovimentacao(12323);
this.movimentacaoRepository.save(novaMovimentacao);
而是用 id 12323 保存,他从我的序列中得到了下一个
【问题讨论】:
-
我认为您可能需要为此创建自己的
Id生成器,检查this 问题,它为您的用例提供了一些解决方案。 -
供您参考:stackoverflow.com/questions/31158509/…。由于持久性提供程序在插入之前分配主键,它会覆盖之前设置的值
标签: spring-boot jpa spring-data-jpa id-generation