« save (S) » dans des dépôts affrontements avec « sauver (S) » dans « org.springframework.data.repository.CrudRepository » les deux méthodes ont même effacement, mais ni l'un ni l'autre ne l'emporte sur l'autre.Les deux méthodes ont le même effacement, mais ni l'autre
J'ai eu cette erreur. J'essaye de créer une interface nommée BookRepository. L'interface étend CrudRepository et je veux implémenter la méthode save et la méthode saveAll à l'intérieur de cette interface. Lorsque j'implémente toutes les méthodes, toutes les méthodes fonctionnent bien sauf save() et saveAll().
Je vous ai donné mes cours ci-dessous.
BookRepository:
package repositories;
import com.ex.deneme_1.*;
import org.springframework.data.repository.CrudRepository;
import java.util.Optional;
public interface BookRepository extends CrudRepository<Book, Long>{
@Override
default <S extends T> S save(S entity) { // That doesn't work
return null;
}
@Override
default <S extends T> Iterable<S> saveAll(Iterable<S> entities) {
//That doesn't work either
return null;
}
@Override
default Optional<Book> findById(Long id) {
return null;
}
@Override
default boolean existsById(Long id) {
return false;
}
@Override
default Iterable<Book> findAll() {
return null;
}
@Override
default Iterable<Book> findAllById(Iterable<Long> ids) {
return null;
}
@Override
default long count() {
return 0;
}
@Override
default void deleteById(Long id) {
}
@Override
default void delete(Book entity) {
}
@Override
default void deleteAll(Iterable<? extends Book> entities) {
}
@Override
default void deleteAll() {
}
}
Ma classe bootstrap:
package Bootstrap;
import com.ex.deneme_1.*;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.*;
import repositories.*;
@Component
public class DevBootstrap implements ApplicationListener<ContextRefreshedEvent>{
private BookRepository bookRepository;
private AuthorRepository authorRepository;
public DevBootstrap(AuthorRepository authorRepository, BookRepository bookRepository)
{
this.authorRepository = authorRepository;
this.bookRepository = bookRepository;
}
@Override
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
initData();
}
private void initData(){
Author xyz = new Author("xyz","xyz");
Book abc = new Book("Trying to learn Spring","1234","StackOverFlow");
xyz.getBooks().add(abc);
abc.getAuthors().add(xyz);
authorRepository.save(xyz);
bookRepository.save(abc);
}
}
et My Book Classe:
package com.ex.deneme_1;
import javax.annotation.Generated;
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;
import java.awt.*;
@Entity
public class Book extends java.awt.print.Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String title,isbn,publisher;
private long id;
@ManyToMany
@JoinTable(name = "author_book", joinColumns = @JoinColumn(name="book_id"),
inverseJoinColumns = @JoinColumn(name = "author_id"))
private Set<Author> authors = new HashSet<>();
public Book(){
}
public Book(String title,String isbn, String publisher)
{
this.title = title;
this.isbn = isbn;
this.publisher = publisher;
}
public Book(String title, String isbn, String publisher, Set<Author> author)
{
this.title = title;
this.isbn = isbn;
this.publisher = publisher;
this.authors = author;
}
public String getTitle() { return title; }
public String getIsbn() { return isbn; }
public String getPublisher() { return publisher; }
public Set<Author> getAuthors(){ return authors; }
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public void setTitle(String title) { this.title = title; }
public void setIsbn(String isbn) { this.isbn = isbn; }
public void setPublisher(String publisher){ this.publisher = publisher; }
public void setAuthors(Set<Author> authors){ this.authors = authors; }
}
Je pense que vous les gars facilement deviné j'ai une classe nommée comme auteur qui a des fonctions similaires comme Book.class.
La méthode 'save' ne devrait pas être' default
S save (entité S) '?? de même pour la méthode 'saveAll', vous devriez changer' T' avec 'Book' – bracco23est la classe ou l'interface' BookRepository'? –
BookRepository est une interface. – Zahid