2017-01-20 5 views
0

Мне нужно вставить одну запись в мою БД, но в некоторых случаях мне нужно передать идентификатор, но когда я вставляю свой идентификатор вручную, весенняя загрузка не сохраняет с этим ID, весна-ботинки получили новые от последовательностиSpring-Boot с JPA не держите Id

это моя сущность

@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); 

вместо сохранения с идентификатором 12323 он получил следующий из моей последовательности

+0

Возможно, вам понадобится создать свой собственный генератор 'Id' для этого, отметьте [this] (http://stackoverflow.com/q/3194721/3274974) вопрос, у него есть некоторые решения для вашего случая использования. – Edd

+0

Для справки: http://stackoverflow.com/questions/31158509/how-to-generate-custom-id-using-hibernate-while-it-must-be-primary-key-of-table. Поскольку поставщик персистентности назначает первичный ключ перед вставкой, он переопределяет значение, установленное до – Barath

ответ

0

Вы определили его для использования генератора, поэтому он будет генерировать идентификатор, как вы его просили. Вы устанавливаете его первым, это не имеет никакого отношения. Удалите генератор, если вы хотите установить его

Смежные вопросы