FEHLER:
Error starting ApplicationContext. To display the condition evaluation report re-run your application with ‚debug‘ enabled.
ERROR 36683 — [*****] [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‚departmentController‘ defined in file….
Der Fehler besagt, dass Spring Boot keine Methode findByName für das Feld name im Department-Objekt finden kann. Der Grund dafür ist, dass du die Methode findByName(String name) im DepartmentRepository definiert hast, aber in der Klasse Department gibt es kein Attribut name. In deiner Department-Klasse heißt das relevante Feld departmentName und nicht name.
Lösung:
Passe die Methode im DepartmentRepository an, damit sie auf das Feld departmentName zugreift, anstatt auf name.
Repository-Anpassung:
Ändere die Methode findByName zu findByDepartmentName, damit sie dem tatsächlichen Namen des Feldes im Department-Objekt entspricht:
public interface DepartmentRepository extends MongoRepository<Department, String> {
Optional<Department> findByDepartmentName(String departmentName);
}
Warum passiert das?
Spring Data MongoDB versucht automatisch, Methoden wie findByName zu implementieren, indem es die Feldnamen im Department-Objekt verwendet. Wenn jedoch das Feld im Department nicht name heißt, sondern departmentName, kann Spring Boot die Methode nicht korrekt binden.