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,我看到:
- 龙目岛 1.16.22
- 所有 Spring 相关的都是 2.0。6.RELEASE
代码如下所示:
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());
}
我正在观看此视频教程以了解 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,我看到:
- 龙目岛 1.16.22
- 所有 Spring 相关的都是 2.0。6.RELEASE
代码如下所示:
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());
}