Как настроить в Spring Boot автоинкрементацию id в таблице PostgreSql с очисткой удаленных id?

Делаю приложение на Java со Spring Boot. База данных PostgreSql. Имеется html страница в которой показана таблица, данные берутся из таблицы Postgresql. После удаления/добавления записей последний айдишник строки имеет не порядковый номер.
Как сделать,чтобы номера id в таблице шли по порядку?

Возможно ли сделать порядок айдишников с помощтю аннотации спринга? или надо специальный запрос прописывать в PostgreSql?

5cd92bc82e7b6522512454.jpeg

Класс, который создает таблицу:

import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

@Data
@NoArgsConstructor
@Entity
@Table(name = "student")
public class Student {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private int id;

  @Size(min = 3, max = 30)
  private String firstName;

  @Size(min = 3, max = 30)
  private String lastName;

  @NotBlank
  private String email;

  @NotBlank
  private String country;

  @NotBlank
  private String gender;

  @NotBlank
  private String section;

}
  • Вопрос задан
  • 485 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
Этого делать не надо. Вся суть идентификаторов в их неизменности.
Ответ написан
@postya Автор вопроса
Благодарю всех ответивших на мой вопрос!
Решение нашёл такое:

Моя таблица в thymeleaf выглядит вот так:

<table class="table table-bordered table-dark">

        </thead>
        <tbody>
            <tr>
                <th scope="col" >ID</th>
                <th scope="col">First Name</th>
                <th scope="col">Last Name</th>
                <th scope="col">Gender</th>
                <th scope="col">Email</th>
                <th scope="col">Section</th>
                <th scope="col">Country</th>
                <th scope="col">Edit</th>
                <th scope="col">Delete</th>
            </tr>

            <tr th:each="student, iStat : ${list}">
                <td th:text="${iStat.index + 1}"></td>
                <td th:text="${student.firstName}"></td>
                <td th:text="${student.lastName}"></td>
                <td th:text="${student.gender}"></td>
                <td th:text="${student.email}"></td>
                <td th:text="${student.section}"></td>
                <td th:text="${student.country}"></td>

                <td><a th:href="@{'/editstudent/' + ${student.id}}">Edit</a></td>
                <td><a th:href="@{'/deletestudent/' + ${student.id}}">Delete</a></td>
            </tr>

        </tbody>
    </table>


Я всего лишь изменил в шаблонизаторе thymeleaf две строчки, было так:

<tr th:each="student : ${list}">
                <td th:text="${student.id}"></td>


стало так:

<tr th:each="student, iStat : ${list}">
                <td th:text="${iStat.index + 1}"></td>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы