开发者社区> 问答> 正文

SpringBoot+JPA做rest接口时,当发送一个get请求会默认查询一次数据,是什么原理.

@GetMapping("/view/{id}")
public String toTest(@PathVariable("id") Log log, Model model){
        model.addAttribute("log", log);
        return "/system/actionLog/detail";
}

@Data
@Entity
@Table(name="sys_log")
@EntityListeners(AuditingEntityListener.class)
public class Log implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
}


这是请求方法和实体类的代码.
问题如下: 当我发送请求时,会默认查询数据,很奇怪,请大佬帮忙解释下是什么原理... 具体现象如下: 发送请求 http://127.0.0.1:8080/log/view/1545

展开
收起
kun坤 2020-05-29 11:00:43 813 0
1 条回答
写回答
取消 提交回答
  • 引用来自“莲莲莲”的评论

    @PathVariable注解绑定实体的时候会查询,记得需要注册一个类(记不清了),Spring Boot + JPA 默认注册了吧。 看了一下,找到了 https://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/#core.web.basic.domain-class-converter######回复 @hanjinyu : 英文一般,主要是Spring官方文档不错。######好的感谢,另外想跟您学习下,你是如何通过这种问题找到文档的, 是英文很好的原因吗。我英文很差,我也经常翻官网文档,但是总在上面找不到对应的问题.######@PathVariable注解绑定实体的时候会查询,记得需要注册一个类(记不清了),Spring Boot + JPA 默认注册了吧。######我不建议用此种方式, 特别是JPA使用时, 往往有各种关联关系, 而controller层面往往不会加事务控制, 容易导致IO过多.######另外非常感谢您的建议.~######是的,我也发现了这种问题, 特别是在使用了一些关联性的注解时,就会一堆一堆的去关联查询,好在我是搞了一个小的后台管理系统,用户,数据量都不大. 但是这个问题确实挺困扰的.
    2020-05-29 14:32:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载