java - Lombok builder 未生成 builder 方法,推断类型不符合上限
问题描述
我正在关注这个视频教程来了解一下 Spring:https ://www.youtube.com/watch?v=-f-7l8X716k
@Builder
在引入注释之前,我一切顺利。
尝试使用它时,我的构建失败并显示以下消息:
[错误] ...spring/library/src/main/java/com/demo/LibraryApplication.java:[23,33] 方法保存在接口 org.springframework.data.repository.CrudRepository 不能应用于给定类型;必需:S 找到:com.demo.domain.Book.BookBuilder 原因:推断类型不符合上限推断:com.demo.domain.Book.BookBuilder 上限:com.demo.domain。书
输出谈论BookBuilder
但没有类似的东西出现在自动完成中。
我发现了这个问题:inferred type does not conform to upper bound(s) hotelRepository.save(bookings) underlined
但是那里提供的解决方案没有任何改变。
这里出了什么问题?
编辑:我使用 Eclipse STS
查看有效的 POM,我看到:
- 龙目岛 1.16.22
- Spring 相关的一切都是 2.0.6.RELEASE
代码看起来像这样:
书.java:
@Data
@NoArgsConstructor
@Builder
@AllArgsConstructor
@Entity
public class Book {
@Id
@GeneratedValue
private long id;
@NotNull
private String title, isbn;
}
BookRepository.java:
@RepositoryRestResource(path = "books", collectionResourceRel = "books")
public interface BookRepository extends PagingAndSortingRepository<Book, Long> {
}
图书馆应用程序.java:
@SpringBootApplication
public class LibraryApplication {
@Autowired
private BookRepository bookRepo;
@Component
class DataSetup implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
bookRepo.save(Book.builder());
}
}
public static void main(String[] args) {
SpringApplication.run(LibraryApplication.class, args);
}
}
解决方案
Book.builder 返回一个BookBuilder
你可以设置属性的地方,如果你想创建一本书,你应该做类似的事情:
@Override
public void run(ApplicationArguments args) throws Exception {
bookRepo.save(Book.builder().build());
}
你可以看看lombok builder文档
推荐阅读
- python - Django 的更改密码表单 (views.py)
- tensorflow - 如何删除使用 add_loss() 添加的损失
- regexp-replace - 如何删除雪花中数字后的字符
- python-3.x - 我相信很简单:打印带有标题和结果的 2 列——python 的新手
- python - 来自基类的模拟函数
- java - 具有 grpc-java 插件版本:1.37.0 及更高版本的 gRPC 应用程序项目不在 Windows 上构建
- pine-script - 条件为假时无法继续循环
- json - 如何部署文件“MY_PROGRAM_NAME.runtimeconfig.json”?
- angular - Angular 服务未命中 Asp.Net MVC 后控制器
- laravel - 如何在其中一个 hasMany 关系上使用过滤器检索模型?