Как обнаружить повторяющийся запрос в методе поста с тем же временем - PullRequest
0 голосов
/ 26 мая 2019

Я использую весеннюю загрузку и создаю API с методом, подобным приведенному ниже:

@RestController
@RequestMapping("/api/products/")
@Api(value = "ProductControllerApi",produces = MediaType.APPLICATION_JSON_VALUE)
public class ProductController {
  @PostMapping
    public ResponseEntity<ProductDto> createProduct(@RequestBody Product product) {
        URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(product.getId()).toUri();
        return ResponseEntity.created(location).body(productService.createProduct(product));
    }
}

Но когда пользователь, использующий устройство, вызывает мой метод ( / api / products / ) с тем же временем,это дублирует создание с теми же данными.Пример: при использовании create user выглядит как {"name": "Samsung" "cost": "26 $"}

, при этом создаются две записи в базе данных с одинаковыми данными.Как обнаружить дублирующиеся данные из другого источника (пример: пользователь использует два мобильных телефона и звонит в одно и то же время одним и тем же методом и создает одинаковые данные).Как избежать этого, и если он вызывает одно и то же время с теми же данными, он вставляет только одну запись в базу данных

1 Ответ

4 голосов
/ 26 мая 2019

Это не проблема для Spring Boot, а скорее для вашего уровня персистентности.Лучше всего, чтобы таблицы БД моделировались таким образом, чтобы два идентичных запроса создавали один и тот же первичный ключ.Тогда код вашего приложения будет иметь дело с любым исключением из уровня БД во время фиксации транзакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...