Я изучал этот видеоурок, чтобы немного узнать о Spring: https://www.youtube.com/watch?v=-f-7l8X716k
У меня все получалось, пока не появилась аннотация @Builder
.
При попытке его использоватьмоя сборка завершается со следующим сообщением:
[ОШИБКА] ... spring / library / src / main / java / com / demo / LibraryApplication.java: метод [23,33] save inинтерфейс org.springframework.data.repository.CrudRepository не может быть применен к данным типам;Обязательно: S найдено: com.demo.domain.Book.BookBuilder Причина: выведенный тип не соответствует верхней границе. Вывод: com.demo.domain.Book.BookBuilder Верхняя граница (ы): com.demo.domain.Книга
Вывод сообщений о BookBuilder
, но ничего подобного не появляется в автозаполнении.
Я нашел этот вопрос: выведенный тип не соответствует верхней границе (s)) hotelRepository.save (бронирования) подчеркнуто
Но предлагаемое решение там ничего не меняет.
Что здесь не так?
РЕДАКТИРОВАТЬ: Я работал с Eclipse STS
Глядя на эффективную POM, я вижу:
- Lombok 1.16.22
- Все, что связано с пружиной, - это 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);
}
}