'Save (S)' in Repositories Auseinandersetzungen mit in '(S) speichern' 'org.springframework.data.repository.CrudRepository' beide Methoden haben gleichen löschen, aber keiner übersteuert den anderen.Beide Methoden haben gleiche Löschung, aber weder überschreibt die anderen
Ich habe diesen Fehler erhalten. Ich versuche, eine Schnittstelle zu erstellen, die als BookRepository bezeichnet wird. Die Schnittstelle erweitert CrudRepository und ich möchte die Methoden save method und saveAll in dieser Schnittstelle implementieren. Wenn ich alle Methoden implementiere, funktionieren alle Methoden gut außer save() und saveAll().
Ich gab Ihnen meine Klassen unten.
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() {
}
}
Meine Bootstrap-Klasse:
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);
}
}
und My Book Klasse:
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; }
}
Ich glaube, Sie Jungs einfach zu erraten ich eine Klasse als Autor genannt haben, die hat ähnliche Funktionen wie Book.class.
Methode 'save' sollte nicht sein' default
S speichern (S entity) '?? das gleiche für die 'saveAll' Methode, sollten Sie' T' mit 'Book' ändern – bracco23ist' BookRepository' Klasse oder Schnittstelle? –
BookRepository ist eine Schnittstelle. – Zahid