java - 即使从 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 代码也无法正常工作。任何意见,将不胜感激。
解决方案
@data
lombok 将隐式创建所有:getter +setter+constructor 等 .. => 调用时应该没有错误getCustomer()
,因为他用注释 Class OrderRequest
,@data
所以 getter 和 setter 将被隐式创建。
这是龙目岛官方网站关于龙目岛的官方说法
@Data 是一个方便的快捷注解,将@ToString、@EqualsAndHashCode、@Getter/@Setter 和@RequiredArgsConstructor 的特性捆绑在一起
因此,很明显,您在 Eclipse 中安装 lombok 时遇到问题。我建议您先删除 lombok 并自己创建 setter、getter 和构造函数。
我希望我有所帮助
推荐阅读
- python - 如何将第二个 csv 的未重复行添加到第一个的末尾并合并到新的 csv?
- react-native - 无法让相机使用 expoTHREE 和 expoGRAPHICS 在 React-native 项目中创建 AR 场景
- machine-learning - 在语言建模中,为什么我必须在每个新的训练时期之前初始化隐藏权重?(火炬)
- dart - setState Dart/Flutter 中带有花括号的胖箭头符号
- javascript - 在 Leaflet 上缓慢加载 KML 文件...我可以加载其中的一部分吗?
- css - CSS 转换:翻译在 IOS 上的行为不正确
- angular - 为什么 ngx-chart TreeMap 标签不显示在 IE11 中?
- javascript - 如何对齐屏幕中垂直对齐的内容?
- angular - 从 html 文件根据条件调用函数而不使用 *ngIf
- angular - 从 HTML/Angular 应用程序访问移动图库