Spring Boot中存储库的默认“ findById”函数的运行时是什么?
来源:爱站网时间:2021-09-28编辑:网友分享
Spring Boot中存储库的默认“ findById”函数的运行时是什么?它是否需要订单ID并在整个订单表中查找特定的订单?还是直接获得特定订单? 这一系列的问题问的大家是不是一愣一愣的,别担心,爱站技术小编用一篇文章帮你们一一解开这些谜团,大家一起来看看吧。
问题描述
对于简单的@PutMapping(请参见下文),它是否需要订单ID并在整个订单表中查找特定的订单?还是直接获得特定订单?
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;
}
思路:
您可以看到通过将以下行添加到属性(application.properties)文件中而发生的sql查询:
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
子句中,可以指定具有一个或多个条件的搜索条件(逻辑表达式)。
您可以阅读以下文章作为建议:SQL WHERE子句为here。
Spring Data JPA核心概念是here。
以上内容就是爱站技术频道小编为大家分享的Spring Boot中存储库的默认“ findById”函数的运行时是什么?,看完以上分享之后,大家应该都知道函数的运行时是什么了吧。
您可能感兴趣的文章
- 解决Spring Boot应用部署到Tomcat无法启动问题
- 使用PropertySource的每个环境的Spring boot负载配置
- 我可以在Spring Boot中模拟Optional <>的bean吗?
- Spring boot application main方法执行两次->端口已在使用中
- 如何在Spring Boot 2.2.4中与@ConfigurationProperties一起使用@ConstructorBinding和@PropertySource?
- Spring Boot和Azure:在自动配置之前初始化bean
- 无法将spring boot应用程序部署到heroku
- 用于创建Web服务配置的Spring Boot CRUD操作是什么?
- Spring Boot默认情况下使用HikariPool的错误问题
- Spring Boot项目中读取yaml配置文件的解决方法