Какая среда выполнения для функции по умолчанию «findById» в репозитории в Spring Boot? - PullRequest
0 голосов
/ 25 февраля 2020

Для простого @PutMapping (см. Ниже), берет ли он идентификатор заказа и ищет заданный заказ c по всей таблице заказов? или это go, чтобы получить этот конкретный c заказ напрямую?

orderRepository наследуется от JpaRepository; база данных MySQL

//Update a order:
    @PutMapping("/orders/{id}")
    public Order updateOrder(@PathVariable(value = "id") Long orderId, @Valid @RequestBody Order orderDetails) throws OrderNotFoundException {
        Order order = orderRepository.findById(orderId).orElseThrow(() -> new OrderNotFoundException(orderId));
        order.setMerchant(orderDetails.getMerchant());
        order.setStore(orderDetails.getStore());
        Order updatedOrder = orderRepository.save(order);
        return updatedOrder;
    }

1 Ответ

0 голосов
/ 25 февраля 2020

Вы можете увидеть запросы sql, которые возникают, добавив следующие строки в файл свойств (application.properties):

spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true

FindById запрос гибернации, сформированный в строке: следующим образом:

select order0_.id as id1_0_0_, order0_.name as name2_0_0_ from app_order order0_ where order0_.id=?

Поле id ищется как условие где в таблице заказов. В предложении WHERE вы можете указать условие поиска (логическое выражение), которое имеет одно или несколько условий. Все строки, для которых предикат в предложении WHERE равен True, затрагиваются (или возвращаются)

Вы можете прочитать эти статьи в качестве предложения: SQL Предложение WHERE здесь .

Основные понятия JPA для Spring Data: здесь .

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