Spring for Beginners, troubles.

Dimax

Top Contributor
Guten Tag liebe Community.
Ich habe ein Spring Projekt angefangen ,aber bin dabei auf einige Probleme gestoßen.
Ich bekomme folgende Meldung:
***************************
APPLICATION FAILED TO START
***************************

Description:

Field projektRepository in controllers.MainController required a bean of type 'repo.ProjektRepository' that could not be found.

The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'repo.ProjektRepository' in your configuration.

Das ist mein Controller:
Java:
package controllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import models.Projekt;
import repo.ProjektRepository;


@Controller
public class MainController {
    
    
    @GetMapping("/")
    public String huiting(Model model) {
        model.addAttribute("titel", "Haupt Seite");
        
        return "sascoSpring";
    }
    @GetMapping("/sascoSpring")
    
    
    public String greeting(Model model) {
        model.addAttribute("titel", "Haupt Seite");
        
        return "sascoSpring";                                   
    }
    @Autowired
    private ProjektRepository projektRepository;
    @GetMapping("/addProg")
    public String progAdd(Model model) {
        //Das ist der ResultSet von der Tabelle
        Iterable<Projekt> projekts=projektRepository.findAll();
        
        model.addAttribute("proj",projekts);
        return "programmhinzufuegen";
    }
}
Das ist das Model:
Java:
package models;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.List;


/**
 * The persistent class for the projekt database table.
 * 
 */
@Entity
@NamedQuery(name="Projekt.findAll", query="SELECT p FROM Projekt p")
public class Projekt implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name="projekt_id")
    private int projektId;

    private Timestamp hinzugefuegt;

    private String projekt;

    //bi-directional many-to-one association to Programm
    @OneToMany(mappedBy="projekt")
    private List<Programm> programms;

    //bi-directional many-to-one association to ProjektStatistik
    @OneToMany(mappedBy="projekt")
    private List<ProjektStatistik> projektStatistiks;

    public Projekt() {
    }

    public int getProjektId() {
        return this.projektId;
    }

    public void setProjektId(int projektId) {
        this.projektId = projektId;
    }

    public Timestamp getHinzugefuegt() {
        return this.hinzugefuegt;
    }

    public void setHinzugefuegt(Timestamp hinzugefuegt) {
        this.hinzugefuegt = hinzugefuegt;
    }

    public String getProjekt() {
        return this.projekt;
    }

    public void setProjekt(String projekt) {
        this.projekt = projekt;
    }

    public List<Programm> getProgramms() {
        return this.programms;
    }

    public void setProgramms(List<Programm> programms) {
        this.programms = programms;
    }

    public Programm addProgramm(Programm programm) {
        getProgramms().add(programm);
        programm.setProjekt(this);

        return programm;
    }

    public Programm removeProgramm(Programm programm) {
        getProgramms().remove(programm);
        programm.setProjekt(null);

        return programm;
    }

    public List<ProjektStatistik> getProjektStatistiks() {
        return this.projektStatistiks;
    }

    public void setProjektStatistiks(List<ProjektStatistik> projektStatistiks) {
        this.projektStatistiks = projektStatistiks;
    }

    public ProjektStatistik addProjektStatistik(ProjektStatistik projektStatistik) {
        getProjektStatistiks().add(projektStatistik);
        projektStatistik.setProjekt(this);

        return projektStatistik;
    }

    public ProjektStatistik removeProjektStatistik(ProjektStatistik projektStatistik) {
        getProjektStatistiks().remove(projektStatistik);
        projektStatistik.setProjekt(null);

        return projektStatistik;
    }

}

Das ist das Repository Interface:
Java:
package repo;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

import models.Projekt;

@Repository
public interface ProjektRepository extends CrudRepository<Projekt,Long>{

}

Im persistence.xml habe ich folgenden Eintrag:

<class>model.Projekt</class>
Was mache ich falsch?
 

Flown

Administrator
Mitarbeiter
Springt sucht in einer Hierarchie an packages: org.javaforum.flown.app wäre ein Beispiel.
Darunter sollte sich dann:
- org.javaforum.flown.app -> main

- org.javaforum.flown.app.model
- org.javaforum.flown.app.service
- org.javaforum.flown.app.controller

befinden.

Dann findet er auch automatisch die Beans zum injecten.

Es gibt auch die Annotation @ComponentScan (wenn ich mich richtig erinnere). Da könnte man das dann händisch via package eintragen. Aber das möchte man ja nicht.
 

Flown

Administrator
Mitarbeiter
1617111302125.png
Das ist ein Beispielprojekt und alles liegt unter com.jpr.pma. Die main liegt auch in diesem Verzeichnig/package (PmaApplication.kt).

(Bitte stör dich nicht daran, weil es Kotlin ist)
 
K

kneitzel

Gast
Wenn Du sonst nichts gross "injected" wird: Ja.

Wenn Du ComponentScan verwendest, er also Komponenten eigenständig finden soll, dann müssen die Elemente innerhalb eines packages liegen. Üblich ist es daher, dass man die Spring Application in ein package packt und dann da alle weiteren packages anlegt. So wie es @Flown in dem Beispiel gebracht hat: com.jpr.pma enthält seine Application mit @ComponentScan und alle Komponenten sind dann in packages unter com.jpr.pma.

Wenn Du das nicht willst, so hat dir @Flown schon den Hinweis gegeben: mit @ComponentScan kann man angeben, in welchen Packages gesucht werden soll.

Bei Dir könnte es also sowas sein wie:
@ComponentScan(basePackages="repo, controllers, models, ....")
auf der SpringApplication Klasse.

Das ist aber unüblich - generell hat man meistens a) einen klaren Bezeichner, wer da entwickelt, was zum Beispiel eine umgedrehte Domain sein kann und b) eine Art Projektname. Etwas in der Art solltest Du Dir auch überlegen. Dann kannst Du auch das Pattern verwenden, wie es üblich ist.

Und evtl. noch der Hinweis: Du siehst wahrscheinlich keine @ComponentScan annotation. Statt dessen siehst Du nur eine @SpringBootApplication Annotation, aber die ist nichts anderes als ein

Java:
@Configuration
@EnableAutoConfiguration
@ComponentScan
 

Dimax

Top Contributor
umgebaut das Ganze, das Problem lag doch an Hierarchie aber nicht nur. Das ist die erste Zeile von dem nächsten Problem->

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Repeated column in mapping for entity: sascoSpring.models.Makro column: programm_id (should be mapped with insert="false" update="false")
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    23,6 KB · Aufrufe: 21

mrBrown

Super-Moderator
Mitarbeiter
umgebaut das Ganze, das Problem lag doch an Hierarchie aber nicht nur. Das ist die erste Zeile von dem nächsten Problem->
Das ursprüngliche Problem lag nur an der Hierarchie - das jetzige Problem ist ein völlig anderes ;)


Und da sagt die Fehlermeldung doch schon fast alles:
Repeated column in mapping for entity: sascoSpring.models.Makro column: programm_id
In sascoSpring.models.Makro hast du zwei Attribute als Column programm_id annotiert
 

Dimax

Top Contributor
das ist Makro.java
Java:
import java.io.Serializable;
import javax.persistence.*;


/**
 * The persistent class for the makro database table.
 * 
 */
@Entity
@NamedQuery(name="Makro.findAll", query="SELECT m FROM Makro m")
public class Makro implements Serializable {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private MakroPK id;

    @Column(name="end_statement_id")
    private int endStatementId;

    private String funktion;

    private int level;

    @Column(name="makro_name")
    private String makroName;

    private String optionen;

    //bi-directional many-to-one association to Programm
    @ManyToOne
    @JoinColumns({
        @JoinColumn(name="programm_id", referencedColumnName="programm_id"),
        @JoinColumn(name="projekt_id", referencedColumnName="projekt_id")
        })
    private Programm programm;

    //bi-directional many-to-one association to Statement
    @ManyToOne
    @JoinColumns({
        @JoinColumn(name="programm_id", referencedColumnName="programm_id"),
        @JoinColumn(name="projekt_id", referencedColumnName="projekt_id"),
        @JoinColumn(name="start_statement_id", referencedColumnName="statement_id")
        })
    private Statement statement;

    public Makro() {
    }

    public MakroPK getId() {
        return this.id;
    }

    public void setId(MakroPK id) {
        this.id = id;
    }

    public int getEndStatementId() {
        return this.endStatementId;
    }

    public void setEndStatementId(int endStatementId) {
        this.endStatementId = endStatementId;
    }

    public String getFunktion() {
        return this.funktion;
    }

    public void setFunktion(String funktion) {
        this.funktion = funktion;
    }

    public int getLevel() {
        return this.level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public String getMakroName() {
        return this.makroName;
    }

    public void setMakroName(String makroName) {
        this.makroName = makroName;
    }

    public String getOptionen() {
        return this.optionen;
    }

    public void setOptionen(String optionen) {
        this.optionen = optionen;
    }

    public Programm getProgramm() {
        return this.programm;
    }

    public void setProgramm(Programm programm) {
        this.programm = programm;
    }

    public Statement getStatement() {
        return this.statement;
    }

    public void setStatement(Statement statement) {
        this.statement = statement;
    }

}
 

Dimax

Top Contributor
Danke an alle die mir geholfen haben! Das Problem lag bei dem Primary Key wen der aus mehreren Referencen besteht
Die Lösung habe ich hier gefunden ->Lösung beim Fehler :Repeated column in mapping for entity
Also beim mir war ->
Code:
@ManyToOne
    @JoinColumns({
        @JoinColumn(name="programm_id", referencedColumnName="programm_id"),
        @JoinColumn(name="projekt_id", referencedColumnName="projekt_id")
        })
sollte sein ->
Code:
@ManyToOne(optional=false)
    @JoinColumns({
        @JoinColumn(name="programm_id", referencedColumnName="programm_id", insertable=false, updatable=false),
        @JoinColumn(name="projekt_id", referencedColumnName="projekt_id", insertable=false, updatable=false)
        })
In sascoSpring.models.Makro hast du zwei Attribute als Column programm_id annotiert
Danke mrBrown, das war aber ein anderes Problem.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Dimax Spring vor Beginners troubles with native SQL querys Frameworks - Spring, Play, Blade, Vaadin & Co 11
8u3631984 Ist es möglich in Spring Entity generische Listen verwenden Frameworks - Spring, Play, Blade, Vaadin & Co 3
R Spring Boot Test Assertions mit Objekten Frameworks - Spring, Play, Blade, Vaadin & Co 6
8u3631984 Pfad zu Test Datei in application.yml in Spring Boot Test Frameworks - Spring, Play, Blade, Vaadin & Co 7
R Spring Boot sql Beziehungen Frameworks - Spring, Play, Blade, Vaadin & Co 12
8u3631984 Spring JPA Probleme beim SPeichern von Sets Frameworks - Spring, Play, Blade, Vaadin & Co 3
M Spring Boot 3 Datenbanken zur Laufzeit Verbinden Frameworks - Spring, Play, Blade, Vaadin & Co 5
8u3631984 Spring JDBC Probleme beim Spaltennamen Frameworks - Spring, Play, Blade, Vaadin & Co 3
LimDul Spring-Batches in Docker über Rest starten/verfolgen Frameworks - Spring, Play, Blade, Vaadin & Co 0
ExceptionOfExpectation In Meiner Spring-Boot Applikation verlangt die Datenbank Wert für eine ID Frameworks - Spring, Play, Blade, Vaadin & Co 5
H Spring Boot Applikation und JHM Benchmark sowie ContextConfiguration in H2 Tests ich bekomme es nicht hin Frameworks - Spring, Play, Blade, Vaadin & Co 2
ExceptionOfExpectation Tests in Spring-Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
R Eure Erfahrungen mit Primefaces und Spring - wer managed die Beans Frameworks - Spring, Play, Blade, Vaadin & Co 4
Avalon Get Request doppelt abfeuern ohne Post Redirect Get Pattern. Spring Boot Thymeleaf MVC Frameworks - Spring, Play, Blade, Vaadin & Co 12
thor_norsk Konfigurationsprobleme mit Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 9
R Spring Boot Integration-testing mit Keycloak Frameworks - Spring, Play, Blade, Vaadin & Co 1
R Spring Boot Integration-testing mit Keycloak Frameworks - Spring, Play, Blade, Vaadin & Co 13
L Spring Data und Rest Controller? Frameworks - Spring, Play, Blade, Vaadin & Co 4
thor_norsk Spring Boot Fehler Frameworks - Spring, Play, Blade, Vaadin & Co 1
L Spring Data und Rest Conroller? Frameworks - Spring, Play, Blade, Vaadin & Co 4
thor_norsk Spring Boot und Docker Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Spring Amazon-SP-Api Frameworks - Spring, Play, Blade, Vaadin & Co 3
8u3631984 Aktualisiere Spring Controller Frameworks - Spring, Play, Blade, Vaadin & Co 4
L Spring Data: Modellierung mit einer Embeddable bean Frameworks - Spring, Play, Blade, Vaadin & Co 2
D Spring Boot Test ob Validation geprüft wurde Frameworks - Spring, Play, Blade, Vaadin & Co 8
K Spring Boot OneToMany Frameworks - Spring, Play, Blade, Vaadin & Co 6
8u3631984 Spring Boot Docker Image erstellen und mit docker-compose konfigurieren Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Wann Spring Batch nutzen? Frameworks - Spring, Play, Blade, Vaadin & Co 1
P Spring Hessian Remote Beispiel Frameworks - Spring, Play, Blade, Vaadin & Co 20
8u3631984 Spring 2.7.8 Info Enpoint nicht zuerreichen Frameworks - Spring, Play, Blade, Vaadin & Co 1
gradlew.bat spring-boot:run funktioniert nicht Frameworks - Spring, Play, Blade, Vaadin & Co 4
Zrebna Spring Boot/Thymeleaf: Bestätigungsemail senden. Frameworks - Spring, Play, Blade, Vaadin & Co 2
Zrebna Spring - Thymeleaf: Wieso wird gem. Fallunterscheidung entsprechende View nicht geladen? Frameworks - Spring, Play, Blade, Vaadin & Co 3
Dimax Spring UsernameNotFoundException(msg); auf der View msg ausdrücken Frameworks - Spring, Play, Blade, Vaadin & Co 1
Dimax Spring UsernameNotFoundException(Message) auf der View Message ausdrücken Frameworks - Spring, Play, Blade, Vaadin & Co 2
B Spring Boot und JPA Error creating bean Frameworks - Spring, Play, Blade, Vaadin & Co 24
R Spring Security: Wie kommt 'UserDetails' an Username und Passwort ran? Frameworks - Spring, Play, Blade, Vaadin & Co 6
R Spring Security: Wie den User dynamisch authentifizieren? Frameworks - Spring, Play, Blade, Vaadin & Co 8
R Spring Security: Authentication & Permissions Frameworks - Spring, Play, Blade, Vaadin & Co 4
R Spring Boot: Warum soll PasswordEncoder in einer neuen Methode definiert sein? Frameworks - Spring, Play, Blade, Vaadin & Co 1
8u3631984 Cross-Origin beim Abrufen von Spring Endpoint Frameworks - Spring, Play, Blade, Vaadin & Co 1
D Spring Boot und Microservices Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Spring Boot additional Datasource for a single entity Frameworks - Spring, Play, Blade, Vaadin & Co 0
T Spring Resourcen Ordner ermitteln Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Spring JPA und Repository Frameworks - Spring, Play, Blade, Vaadin & Co 12
D Mapstruct Dependency Injection funktioniert nicht mit Spring Frameworks - Spring, Play, Blade, Vaadin & Co 15
Avalon Wie sieht bei Euch das Deployment einer Spring Boot Anwendung aus? Frameworks - Spring, Play, Blade, Vaadin & Co 4
M Threads in Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 7
W DI-Problem in Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
T Spring Boot: Was bewirkt parent in maven genau? Frameworks - Spring, Play, Blade, Vaadin & Co 4
T Spring Security: Run-as replacement Einsatzbereich? Frameworks - Spring, Play, Blade, Vaadin & Co 1
OnDemand Vaadin+Spring Boot erster Seitenload nach Neustart endlos Frameworks - Spring, Play, Blade, Vaadin & Co 0
doncarlito87 Wie erhalte ich ein JSON aus eine NativeQuery (Spring Boot)? Frameworks - Spring, Play, Blade, Vaadin & Co 8
Avalon @Query Select Abfrage liefert falsche Werte (Spring Boot, JPA, Hibernate) Frameworks - Spring, Play, Blade, Vaadin & Co 3
Avalon Erstellung Dockerimage mit spring-boot:build-image in Spring Boot mit Umgebungsvariablen Frameworks - Spring, Play, Blade, Vaadin & Co 0
N Spring Integration - Logging Frameworks - Spring, Play, Blade, Vaadin & Co 7
D Spring Boot Field Injection in MapStruct Frameworks - Spring, Play, Blade, Vaadin & Co 5
D Spring Anfänger benötigt Hilfe Frameworks - Spring, Play, Blade, Vaadin & Co 9
OnDemand Spring Boot seltsame Logeinträge: Manipulationsversuche? Frameworks - Spring, Play, Blade, Vaadin & Co 2
D Spring Date keine neue Tabelle fuer Attribut Frameworks - Spring, Play, Blade, Vaadin & Co 1
T Spring Security Config File anpassen Frameworks - Spring, Play, Blade, Vaadin & Co 1
8u3631984 Spring Cloud : Resttemplate mit Loadballancer Frameworks - Spring, Play, Blade, Vaadin & Co 11
Dimax Spring resource not found Frameworks - Spring, Play, Blade, Vaadin & Co 2
M Spring MongoDB unique index Frameworks - Spring, Play, Blade, Vaadin & Co 3
M Spring Entity testen Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Spring Entity testen Frameworks - Spring, Play, Blade, Vaadin & Co 5
Dimax Spring App Probleme beim Ausführen auf dem Tomcat Server Frameworks - Spring, Play, Blade, Vaadin & Co 1
D Spring WebFlux Cors konfigurieren Frameworks - Spring, Play, Blade, Vaadin & Co 1
Dimax Schöne View mit anchor scrolling in Spring Frameworks - Spring, Play, Blade, Vaadin & Co 2
Dimax Spring JPA Multiple Keys Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Security mit oauth2 in lokaler Konfiguration principal mocken Frameworks - Spring, Play, Blade, Vaadin & Co 0
D Spring Boot Mile Stone und Snapshot Versionen Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand Spring Boot Exception Body Frameworks - Spring, Play, Blade, Vaadin & Co 2
D Was ist das Framework "Spring"? Frameworks - Spring, Play, Blade, Vaadin & Co 1
M Spring Unit/Integrations Testing Frameworks - Spring, Play, Blade, Vaadin & Co 3
D Spring Unit Test: UnsatisfiedDependencyException: Error creating bean with name Frameworks - Spring, Play, Blade, Vaadin & Co 2
H Resource Liste Lazy Autowired Spring Context Frameworks - Spring, Play, Blade, Vaadin & Co 2
M Java Spring Security Frameworks - Spring, Play, Blade, Vaadin & Co 5
M Spring Security Login with Credentials Frameworks - Spring, Play, Blade, Vaadin & Co 0
N Spring Boot - Overkill für private Projekte? Frameworks - Spring, Play, Blade, Vaadin & Co 3
krgewb Spring und GWT - & wird zu & amp; Frameworks - Spring, Play, Blade, Vaadin & Co 2
K Migration eines internen Frameworks zu Spring:Boot Frameworks - Spring, Play, Blade, Vaadin & Co 0
OnDemand JPA/Spring Repository Like Suche leeres Ergebnis Frameworks - Spring, Play, Blade, Vaadin & Co 0
Z Hibernate & Postgres in Spring Boot (Syntaxprobleme) Frameworks - Spring, Play, Blade, Vaadin & Co 2
Z Spring Boot mit JPA;, Hibernate, Rest & Lombok Frameworks - Spring, Play, Blade, Vaadin & Co 8
M Spring Initializer - Webservices Frameworks - Spring, Play, Blade, Vaadin & Co 0
D Spring Hateoas Frameworks - Spring, Play, Blade, Vaadin & Co 1
ma095 Spring und Postgresql Errors Frameworks - Spring, Play, Blade, Vaadin & Co 4
OnDemand Spring+Vaadin App startet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 1
OnDemand Spring Request externe API SSL Error Frameworks - Spring, Play, Blade, Vaadin & Co 7
OnDemand Spring Repo speichert, aber es kommt in der DB nicht an Frameworks - Spring, Play, Blade, Vaadin & Co 3
Dimax Im Spring ,Mysql-Funktion aufrufen Frameworks - Spring, Play, Blade, Vaadin & Co 2
OnDemand Spring Security/Boot/Vaadin Cookie Problem bei iFrame Frameworks - Spring, Play, Blade, Vaadin & Co 4
OnDemand Spring Boot: Feld ignorieren Frameworks - Spring, Play, Blade, Vaadin & Co 3
8u3631984 Spring + Thymleaf : Checkbox Object mappen Frameworks - Spring, Play, Blade, Vaadin & Co 0
N Buch zum Spring Framework bzw. Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 3
OnDemand Jasypt Spring Boot HIbernate wie komme ich an den Key? Frameworks - Spring, Play, Blade, Vaadin & Co 4
8u3631984 Spring Boot im Docker Container - Logback wird nicht verwendet Frameworks - Spring, Play, Blade, Vaadin & Co 13
sascha-sphw Spring - Authentication object was not found Frameworks - Spring, Play, Blade, Vaadin & Co 3
8u3631984 Welches Spring Frontend Framework verwendet ihr und wie bzw wo ? Frameworks - Spring, Play, Blade, Vaadin & Co 7

Ähnliche Java Themen

Neue Themen


Oben