Lombok 构建器不生成构建器方法,推断类型不符合上限

Lombok builder not producing builder method, inferred type does not conform to upper bound

我正在观看此视频教程以了解 Spring 一点:https://www.youtube.com/watch?v=-f-7l8X716k

我一切顺利,直到引入 @Builder 注释。

尝试使用它时,我的构建失败并显示以下消息:

[ERROR] ...spring/library/src/main/java/com/demo/LibraryApplication.java:[23,33] method save in interface org.springframework.data.repository.CrudRepository cannot be applied to given types; required: S found: com.demo.domain.Book.BookBuilder reason: inferred type does not conform to upper bound(s) inferred: com.demo.domain.Book.BookBuilder upper bound(s): com.demo.domain.Book

输出内容为 BookBuilder,但自动完成中没有显示类似内容。

我发现了这个问题:inferred type does not conform to upper bound(s) hotelRepository.save(bookings) underlined

但是那里提供的解决方案没有任何改变。

这里出了什么问题?

编辑:我使用 Eclipse STS

查看有效的 POM,我看到:

代码如下所示:

Book.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> {

}

LibraryApplication.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 return 一个 BookBuilder 如果你想创建一本书你可以设置属性,你应该做这样的事情:

@Override
public void run(ApplicationArguments args) throws Exception {
    bookRepo.save(Book.builder().build());
}

你可以看看lombok builder documentation