首页 > 解决方案 > 即使从 github 复制了他们的代码,我也不知道这对 youtube 人和我来说是如何工作的

问题描述

我一直在自学 Spring Boot,并开始学习联接和表关系。我一直在关注 YouTuber java 技术人员对此视频的说明(SpringBoot:Spring Data JPA - https://youtu.be/8qhaDBCJh6I)。在视频中的某一时刻,他有

package com.javatechie.jpa.dto;

import com.javatechie.jpa.entity.Customer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class OrderRequest {

   private Customer customer;
}

他后来叫这个班


@RestController
public class OrderController {
    @Autowired
    private CustomerRepository customerRepository;
    @Autowired
    private ProductRepository productRepository;

    @PostMapping("/placeOrder")
    public Customer placeOrder(@RequestBody OrderRequest request){
       return customerRepository.save(request.getCustomer());
    }
}

我不知道为什么这对他有用。他在没有在 OrderRequest 类中定义函数的情况下调用 getCustomer 函数。但在他的视频中,他能够毫无问题地运行所有内容,将 JSON 文件发送到 SQL 表。确实,当我尝试这样做时,即使使用他自己的 GitHub 代码(https://github.com/Java-Techie-jt/spring-data-jpa-one2many-join-example.git) eclipse 告诉我不存在 getCustomer 函数,我不断收到 500 错误,再次说 getCustomer 函数不存在。

我究竟做错了什么?它是使用 Eclipse 而不是 Intelli-J 吗?我无法理解为什么即使使用他自己的 GitHub 代码也无法正常工作。任何意见,将不胜感激。

标签: javaspring-bootjpalombok

解决方案


@datalombok 将隐式创建所有:getter +setter+constructor 等 .. => 调用时应该没有错误getCustomer(),因为他用注释 Class OrderRequest@data所以 getter 和 setter 将被隐式创建。

这是龙目岛官方网站关于龙目岛的官方说法

@Data 是一个方便的快捷注解,将@ToString、@EqualsAndHashCode、@Getter/@Setter 和@RequiredArgsConstructor 的特性捆绑在一起

因此,很明显,您在 Eclipse 中安装 lombok 时遇到问题。我建议您先删除 lombok 并自己创建 setter、getter 和构造函数。

我希望我有所帮助


推荐阅读