Spring boot

Diskutiere Spring boot im IDEs und Tools Bereich.
A

Adriano10

Java:
package io.brains.app.repository;

import io.brains.app.student.Student;
import org.springframework.data.repository.CrudRepository;

import java.util.List;

public interface StudentRepository extends CrudRepository<Student, Integer> {

}

////////////////////////////////////
package io.brains.app.student;

import javax.persistence.*;
import java.util.Objects;

@Entity
@Table(name = "Student")
public
class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int matrikelnummer;
    @Column
    private String vorname;
    @Column
    private String nachname;
    @Column
    private String geburtsdatum;
    public Student(){

    }

    public Student(int matrikelnummer, String vorname, String nachname, String geburtsdatum) {
        this.matrikelnummer = matrikelnummer;
        this.vorname = vorname;
        this.nachname = nachname;
        this.geburtsdatum = geburtsdatum;
    }

    public int getMatrikelnummer() {
        return matrikelnummer;
    }

    public void setMatrikelnummer(int matrikelnummer) {
        this.matrikelnummer = matrikelnummer;
    }

    public String getVorname() {
        return vorname;
    }

    public void setVorname(String vorname) {
        this.vorname = vorname;
    }

    public String getNachname() {
        return nachname;
    }

    public void setNachname(String nachname) {
        this.nachname = nachname;
    }

    public String getGeburtsdatum() {
        return geburtsdatum;
    }

    public void setGeburtsdatum(String geburtsdatum) {
        this.geburtsdatum = geburtsdatum;
    }



    @Override
    public int hashCode() {
        return Objects.hash(matrikelnummer);
    }
}
///////////////////////////////////////////////////
package io.brains.app.service;

import io.brains.app.repository.StudentRepository;
import io.brains.app.student.Student;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

public class StudentService {

    @Autowired
    private StudentRepository repository;


    public void saveStudent(Student student) {
        repository.save(student);

    }



    public Iterable<Student> getStudenten(){
        return repository.findAll();
    }
    public Student getId(int id){
        return repository.findById(id).orElse(null);
    }

    public String delete(int id){
        repository.deleteById(id);
        return "Delete is successfully";
    }
    public Student updateStudent(@org.jetbrains.annotations.NotNull Student student){
        Student st = repository.findById(student.getMatrikelnummer()).orElse(null);
        st.setVorname(student.getVorname());
        st.setNachname(student.getNachname());
        st.setGeburtsdatum(student.getGeburtsdatum());
        return repository.save(st);
     }
}

@SpringBootTest
class StudentApplicationTests {

    @Test
    void contextLoads() {
    }

    @Autowired
    StudentRepository repository;
    StudentController controller;
    List<Student> list = new ArrayList<>();
    StudentService service;

    @Test
    void Test1(){
        Student student = new Student(28329, "Beka", "Mskhvilidze", "10.11.1991");
        list.add(student);
        list.add(new Student(28330, "Tekle", "Tchelidze", "05.01.1992"));
        list.add(new Student(29331, "Anna", "Tchelidze", "12.03.1986"));
        service.saveStudent(student);
    }
}
Könnte jemand mir helfen, wie ich diesen Fehler mache? Vielen Dank im Voraus.
Dieser Fehler tritt auf
java.lang.NullPointerException
java.lang.NullPointerException
at io.brains.app.StudentApplicationTests.Test1(StudentApplicationTests.java:49)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:212)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:208)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)
at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)
at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)
 
A

Adriano10

Die Zeile gibt dir genau an, in welcher Zeile der Fehler fliegt. Guck einfach mal, was für eine Zeile das ist, was dort null ist, und warum es null ist.
Komisch ist, wenn ich nur mit repositori arbeite, dann funktioniert, z.B repository.saveAll(list) anstatt service.saveAll(list)
 
mrBrown

mrBrown

Du hast also rausgefunden, dass StudentApplicationTests.service null ist?

Dann überleg als nächstes, warum es null ist – oder andersrum, überleg dir, warum es irgendetwas anderes als null sein sollte :)
 
A

Adriano10

Du hast also rausgefunden, dass StudentApplicationTests.service null ist?

Dann überleg als nächstes, warum es null ist – oder andersrum, überleg dir, warum es irgendetwas anderes als null sein sollte :)
darüber mache ich mir ganzen Tag einen Gedanken, aber mir kommt leider keine Idee, was ich machen muss, damit Code fabelhaft läuft
 
mrBrown

mrBrown

Okay, ganz simples Beispiel:

Java:
class EinTest {
  String einString;
}
Welchen Wer hat einString?
 
mrBrown

mrBrown

Richtig.

Und genauso sieht das bei dir aus, service wird nicht initialisiert:

Java:
class StudentApplicationTests {

    StudentService service;

}
 
A

Adriano10

StudentService serviece = new StudentService(Studentrepository repository)

Diese Konsruktor habe ich auch in Service Klasse eingerichtet. Ich wüsste eigentlich, dass micht nix gebracht hätte, aber bloß versucht, andere Idee kommt mir leider nicht, vielleicht ist mein Kopf schon kaputt.
 
A

Adriano10

Wenn du das so geschrieben hast, hast du sicherlich nicht den gleichen Fehler bekommen, weil es nicht mal kompilieren würde.
Entschuldigung, ich habe mich verschrieben
public StudentApplicationTests(StudentService service){
this.service = service;
}

Diese Fehler treten auf
at java.base/java.util.Optional.orElseGet(Optional.java:362)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
 
mrBrown

mrBrown

Ach, du hast da einen Beitrag zwischendrin bearbeitet...

Diese Fehler treten auf
at java.base/java.util.Optional.orElseGet(Optional.java:362)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Das ist kein Fehler, sondern der Ort, an dem ein Fehler passiert ist. Der Fehler ist das, was darüber steht.
 
A

Adriano10

Ach, du hast da einen Beitrag zwischendrin bearbeitet...


Das ist kein Fehler, sondern der Ort, an dem ein Fehler passiert ist. Der Fehler ist das, was darüber steht.
Ohne Service Klasse funktioniert ganz gut, die Verbindung mit der Datenbakn ist auch gut.... wie soll ich jetzt mit dieser Service Klasse umgehen. was soll ich noch überlegen.
 
Thema: 

Spring boot

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben