Значение Id пропускается при неудачной вставке с данными пружины JPA - PullRequest
0 голосов
/ 10 октября 2019

Я использую Spring data JPA для сохранения данных в PostgreSQL. У меня есть сущность под названием «Game», в которой Id является первичным ключом, и это автоматически генерируемое значение, которое увеличивается на «1». У меня есть другой столбец 'game_code', который принимает только уникальные значения.

Когда я пытался сохранить сущность со значением игрового кода, который уже существует в таблице. это дает ошибку. что является правдой. Но значение идентификатора пропускается. Пожалуйста, найдите приведенный ниже пример.

@Entity
@Table(name = "game")
@Data
public class Game {

    @Id
    @SequenceGenerator(name = "GAME_SEQ", sequenceName = "GAME_SEQ", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "GAME_SEQ")
    @Column(updatable = false, nullable = false)
    private Integer id;

    @Column(nullable = false)
    private String gameName;

    @Column(nullable = false , unique=true)
    private String gameCode;

}

     gameRepo.save(new Game("game_name_1","game_code_1")) --> it saves entity in DB with ID value as 1
     gameRepo.save(new Game("game_name_2","game_code_2")) --> it saves entity in DB with ID value as 2
     gameRepo.save(new Game("game_name_3","game_code_2")) --> save failed as 'game_code_2' already exists
     gameRepo.save(new Game("game_name_3","game_code_3")) --> it saves entity in DB with ID value as 4 . 
     **Here I am expecting ID value should be 3 as previous one was not saved**.

Может кто-нибудь, пожалуйста, дайте мне знать, как преодолеть эту проблему.

Спасибо, Мадху.

...