Предполагая, что вы используете MySQL, измените свою сущность, как показано ниже
@Entity
@NoArgsConstructor
@Getter
@Setter
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String text;
private Boolean isDone = Boolean.FALSE;
public Task(int id, String text){
this.id = id;
this.text = text;
this.isDone = Boolean.FALSE;
}
}
, и тогда ваш запрос изменится на простую передачу текста: {"text":"buy juice" }
Сохранение JPA теперь будет работать следующим образом
- Если в запросе присутствует идентификатор, он будет предполагать, что сущность существует, и обновит ее
- Если в запросе нет идентификатора, он создаст новую строку в БД и автоматически назначать идентификатор
PS - В зависимости от того, какая у вас БД, вы можете выбрать оптимальную стратегию генерации идентификатора для этой БД. Например, генерация на основе идентичности хорошо работает с MySQL, генерация на основе последовательностей хорошо работает с Oracle дБ.