Генерация ID для объекта используя MAX(id)

Как генерировать ID с помощью MAX(id) + 1? Есть два класса Author и Book и две таблицы в PostgreSQL с такими же названиями. В таблицах данные уже есть.

Author:

@Entity
@Table(name = "author")
public class Author {
    @Id
   //@SequenceGenerator(name = "id_sequence",sequenceName = "id_sequence",allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "auth_id",updatable = false, nullable = false)
    private Integer id;
    @Column(name = "name")
    private String name;
    @OneToMany(mappedBy = "author",cascade = CascadeType.ALL, orphanRemoval = true)
    private List<Book> books;

Book:

@Entity
@Table(name = "book")
public class Book {
    @Id
    //@SequenceGenerator(name = "book_sequence",sequenceName = "book_book_id_seq",allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "book_id")
    private Integer id;
    @Column(name = "book_name")
    private String name;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "auth_id")
    private Author author;

При попытке добавить Author в БД,каждый раз происходит инкремент Id Результат в БД

auth_id (Primary key) | name
                    1 | Author1
                    2 | Author2
                    3 | Author3

Но если я удалю Author 3 , и попытаюсь добавить нового автора, добавится Author с id 4, а нужно сделать так что бы добавлялся c id 3.


Ответы (0 шт):