Генерация 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.