Spring Boot JPa

plange

Mitglied
Guten Morgen Zusammen,

Grundlagen:
ich habe eine "multi Modul Maven Spring Boot" (Link zu Git) Projekt erstellt.
Dies will ich nun mit JPa mit einer Datenbank verbinden.

Dazu habe ich in einem Maven modul ("notarius-data") drei packages und die jeweiligen Klassen erstellt (siehe unten).

Nun kann ich innerhalb dieses Modules auf meine Datenbank mit
Java:
@Autowired
KlientenNatuerlichDao klientenNatuerlichDao;
auf meine Daten zugreifen.
Will ich aber aus einem anderem Paket oder gar anderem Modull zugreifen, bekomme ich immer Null zurück gegeben.
Was mache ich falsch oder habe ich vergessen?

Danke
Viele Grüße
Patrick


Java:
package de.lange.data.klienten.dao;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import de.lange.data.klienten.domain.KlientenNatuerlich;

import java.util.List;

@Repository
public interface KlientenNatuerlichDao extends JpaRepository<KlientenNatuerlich, Long> {

    List<KlientenNatuerlich> findByNachnameStartsWithIgnoreCase(String nachname);
}

Java:
package de.lange.data.klienten.domain;

import java.io.Serializable;
import java.sql.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "tbl_klienten_natuerlich")
public class KlientenNatuerlich implements Serializable {

    private static final long serialVersionUID = 1693607845884182539L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long klienten_id;

    @Column(name = "nachname")
    private String nachname;
    @Column(name = "geburtsdatum")
    private Date geburtsdatum;
    @Column(name = "geburtsname")
    private String geburtsname;
    @Column(name = "titel")
    private String titel;
    @Column(name = "anrede")
    private String anrede;
    @Column(name = "strasse")
    private String strasse;
    @Column(name = "wohnort")
    private String wohnort;
    @Column(name = "plz")
    private String plz;
    @Column(name = "land")
    private String land;
    @Column(name = "bundesland")
    private String bundesland;
    @Column(name = "telefon_1")
    private String telefon_1;
    @Column(name = "telefon_2")
    private String telefon_2;
    @Column(name = "telefon_3")
    private String telefon_3;
    @Column(name = "fax")
    private String fax;
    @Column(name = "email")
    private String email;
    @Column(name = "personalausweisnummer")
    private String personalausweisnummer;
    @Column(name = "steuernummer")
    private String steuernummer;
    @Column(name = "geburtsort")
    private String geburtsort;
    @Column(name = "geburtsregisternummer")
    private String geburtsregisternummer;
    @Column(name = "geburztsstandesamt")
    private String geburztsstandesamt;
    @Column(name = "verzeichnis")
    private String verzeichnis;
    @Column(name = "vorname")
    private String vorname;

    protected KlientenNatuerlich() {
    }

    public KlientenNatuerlich(String nachname, Date geburtsdatum, String geburtsname, String titel, String anrede,
            String strasse, String wohnort, String plz, String land, String bundesland, String telefon_1,
            String telefon_2, String telefon_3, String fax, String email, String personalausweisnummer,
            String steuernummer, String geburtsort, String geburtsregisternummer, String geburztsstandesamt,
            String verzeichnis, String vorname) {
        this.nachname = nachname;
        this.geburtsdatum = geburtsdatum;
        this.geburtsname = geburtsname;
        this.titel = titel;
        this.anrede = anrede;
        this.strasse = strasse;
        this.wohnort = wohnort;
        this.plz = plz;
        this.land = land;
        this.bundesland = bundesland;
        this.telefon_1 = telefon_1;
        this.telefon_2 = telefon_2;
        this.telefon_3 = telefon_3;
        this.fax = fax;
        this.email = email;
        this.personalausweisnummer = personalausweisnummer;
        this.steuernummer = steuernummer;
        this.geburtsort = geburtsort;
        this.geburtsregisternummer = geburtsregisternummer;
        this.geburztsstandesamt = geburztsstandesamt;
        this.verzeichnis = verzeichnis;
        this.vorname = vorname;
    }

    public Long getKlienten_id() {
        return klienten_id;
    }

    public void setKlienten_id(Long klienten_id) {
        this.klienten_id = klienten_id;
    }

    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 Date getGeburtsdatum() {
        return geburtsdatum;
    }

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

    public String getGeburtsname() {
        return geburtsname;
    }

    public void setGeburtsname(String geburtsname) {
        this.geburtsname = geburtsname;
    }

    public String getTitel() {
        return titel;
    }

    public void setTitel(String titel) {
        this.titel = titel;
    }

    public String getAnrede() {
        return anrede;
    }

    public void setAnrede(String anrede) {
        this.anrede = anrede;
    }

    public String getStrasse() {
        return strasse;
    }

    public void setStrasse(String strasse) {
        this.strasse = strasse;
    }

    public String getWohnort() {
        return wohnort;
    }

    public void setWohnort(String wohnort) {
        this.wohnort = wohnort;
    }

    public String getPlz() {
        return plz;
    }

    public void setPlz(String plz) {
        this.plz = plz;
    }

    public String getLand() {
        return land;
    }

    public void setLand(String land) {
        this.land = land;
    }

    public String getBundesland() {
        return bundesland;
    }

    public void setBundesland(String bundesland) {
        this.bundesland = bundesland;
    }

    public String getTelefon_1() {
        return telefon_1;
    }

    public void setTelefon_1(String telefon_1) {
        this.telefon_1 = telefon_1;
    }

    public String getTelefon_2() {
        return telefon_2;
    }

    public void setTelefon_2(String telefon_2) {
        this.telefon_2 = telefon_2;
    }

    public String getTelefon_3() {
        return telefon_3;
    }

    public void setTelefon_3(String telefon_3) {
        this.telefon_3 = telefon_3;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPersonalausweisnummer() {
        return personalausweisnummer;
    }

    public void setPersonalausweisnummer(String personalausweisnummer) {
        this.personalausweisnummer = personalausweisnummer;
    }

    public String getSteuernummer() {
        return steuernummer;
    }

    public void setSteuernummer(String steuernummer) {
        this.steuernummer = steuernummer;
    }

    public String getGeburtsort() {
        return geburtsort;
    }

    public void setGeburtsort(String geburtsort) {
        this.geburtsort = geburtsort;
    }

    public String getGeburtsregisternummer() {
        return geburtsregisternummer;
    }

    public void setGeburtsregisternummer(String geburtsregisternummer) {
        this.geburtsregisternummer = geburtsregisternummer;
    }

    public String getGeburztsstandesamt() {
        return geburztsstandesamt;
    }

    public void setGeburztsstandesamt(String geburztsstandesamt) {
        this.geburztsstandesamt = geburztsstandesamt;
    }

    public String getVerzeichnis() {
        return verzeichnis;
    }

    public void setVerzeichnis(String verzeichnis) {
        this.verzeichnis = verzeichnis;
    }

    @Override
    public String toString() {
        return String.format("Klient[id=%d, vorname='%s', nachname='%s']", klienten_id, vorname, nachname);
    }

}

Java:
package de.lange.data.klienten.service;

import java.util.List;

import de.lange.data.klienten.domain.KlientenNatuerlich;

public interface KlientenNatuerlichService {

    List<KlientenNatuerlich> getAllKlientenNatuerlich();

    void deleteTabKlientenNatuerlich(KlientenNatuerlich klientenNatuerlich);

    KlientenNatuerlich saveKlientenNatuerlich(KlientenNatuerlich klientenNatuerlich);
}

und

Java:
package de.lange.data.klienten.service.impl;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import de.lange.data.klienten.dao.KlientenNatuerlichDao;
import de.lange.data.klienten.domain.KlientenNatuerlich;
import de.lange.data.klienten.service.KlientenNatuerlichService;


@Service("klientenNatuerlichService")
public class KlientenNatuerlichServiceImpl implements KlientenNatuerlichService {

     private static final Logger LOG = LoggerFactory.getLogger(KlientenNatuerlichServiceImpl.class);

     @Autowired
     KlientenNatuerlichDao klientenNatuerlichDao;

        @Autowired
        public KlientenNatuerlichServiceImpl(KlientenNatuerlichDao klientenNatuerlichDao) {
            this.klientenNatuerlichDao = klientenNatuerlichDao;
        }
       
        @Override
        public List<KlientenNatuerlich> getAllKlientenNatuerlich() {
              return klientenNatuerlichDao.findAll();
        }
       
        @Override
        public void deleteTabKlientenNatuerlich(KlientenNatuerlich klientenNatuerlich) {
            klientenNatuerlichDao.delete(klientenNatuerlich);
        }

        @Override
        public KlientenNatuerlich saveKlientenNatuerlich(KlientenNatuerlich klientenNatuerlich) {
            return klientenNatuerlichDao.save(klientenNatuerlich);
        }
}
 
Hallo Zusammen,
noch ein Nachtrag!
Struktur:

projektroot
--notarius-data
----de.lange.data
--notarius-ui
----de.lange (hier funktioniert das Autowired noch)
----de.lange.view (hier funktioniert das Autowired NICHT mehr)

Das schein an Spring Boot zu liegen.
Was mache ich falsch?

Gruß
Patrick
 
<dependency> Kann verschiedene Scopes haben. Schau mal hier.
Ich kenne mich damit nicht so gut aus, aber könnte mir vorstellen, dass es daran liegt.

//Edit: Ach Mist, habe den Nachtrag gerade nicht berücksichtigt. - Aber wenn es in de.lange funktioniert, aber in einem Subpackage davon nicht - dann liegt es wohl doch nicht an der dependency.

Schau mal hier
In welchem Package befindet sich dein Einstiegspunkt? Ich finde es gerade auf Anhieb nicht ohne es herunterzuladen.
 
Zuletzt bearbeitet:
Ich denke er meint, dass er immer null injected bekommt.
Ich habe die Main nun gefunden
Java:
@SpringBootApplication
@EntityScan(basePackages = { "de.lange.data.klienten.domain" })
@EnableJpaRepositories(basePackages = { "de.lange.data" })
public class NotariusUIApplication {
In @EntityScan sollte wohl eher de.lange oder mindestens de.lange.data stehen, denke ich.
Ich denke es gab auch eine dicke Exception, dass kein passendes Bean gefunden wurde zum injecten. Hast du uns die vorenthalten?
 

Neue Themen


Zurück
Oben