Как настроить в 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;

}
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ответы на вопрос 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>
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Rubbles (SBDA Group) Москва
от 100 000 до 200 000 руб.
MFMS Москва
от 150 000 до 300 000 руб.
18 авг. 2019, в 21:52
10000 руб./за проект
18 авг. 2019, в 21:29
1500 руб./за проект
18 авг. 2019, в 21:10
5000 руб./за проект