0
votes

Référentiel de champs dans ... Notecontroller nécessitait un haricot de type ... NOVEREPOSITORY qui n'a pas pu être trouvé

J'ai essayé d'exécuter un projet de printemps, mais je retourne toujours une erreur, je ne sais pas si le problème est la version de la démarrage de printemps.

J'ai deux projets: p>

  • IntegrationCore (Projet de démarrage à ressort); LI>
  • IntegrationModel (uniquement pour les modèles); LI> ul>

    Le projet IntegrationCore contient les références de Project IntegrationModel (Build Chemin -> Projets) P>

    Lorsque j'exécute l'intégration du projet intégrationcore (exécuter AS -> Spring boot app), renvoie une erreur de console : P>


    Application n'a pas pu démarrer p>


    Description: P>

    Repository de champ dans com.integration.Controller.notecontroller requis a> haricot de type 'com.integration.repository.noterePositoire' qui n'a pas pu être> trouvé. Action: Envisagez de définir un haricot de type 'com.integration.repository.noterePositoire'> dans votre configuration. P> blockQuote>

    J'ai essayé: p>

    • Modifiez la version de Spring Boot de 1,5,7 à 1.5.20; LI>
    • comprend l'anotation de MongoDB dans la classe d'application; LI>
    • insérer des anotations pour références les packages d'intégrationcore; LI> ul>

      intégrationcore p> xxx pré>

      intégrationmodel p> xxx pré>

      intégrationcoreapplication.java p> xxx Pre>

      Notecontroller.java P>

      package com.integrationModel;
      
      import com.fasterxml.jackson.annotation.JsonIgnore;
      import lombok.Data;
      import lombok.EqualsAndHashCode;
      
      import java.util.Date;
      
      @Data
      @EqualsAndHashCode(of = {"id"})
      public class NoteStatuses {
      
          private Boolean physicalReceipt;
          ...
      }
      
      


3 commentaires

Votre novente est une interface, mais n'a aucune implémentation car vous n'avez pas étendu aucune interface de référentiel de données ni fournit une implémentation propre de cette interface. Vous annotant votre interface avec @service et cela ne fonctionnera pas.


Veuillez modifier le sujet à un "référentiel de champs lisible dans ... requis un haricot de type ... qui n'a pas pu être trouvé" est peu compliqué!


@michalk j'ai essayé sans @service , mais le problème continue


3 Réponses :


0
votes

problème est avec votre définition suivante.

@Service
public interface NoteRepository {
    List<NoteStatuses> findStatuses(List<NoteStatusesParams> param);
}


2 commentaires

Vous devez également spécifier la numérisation du package de référentiel. Aussi non-establissements est une entité JPA ou un document élastique ou Mongo? Quel type de référentiel vous essayez de créer


Honnêtement, je ne sais pas, j'ai eu ce projet et je crois que cela a fonctionné comme ça, mais il n'a pas de documentation. Comment puis-je identifier le type de référentiel dont j'aurai besoin?



0
votes

Si vous utilisez NOVEREPOSIENCE comme référentiel, il est préférable d'utiliser @RePository plutôt que @service. strong> xxx pré>

le @springbooTApplication forte > L'annotation est équivalente à l'utilisation de @Configuration, @enablaToconfiguration et @ComponentsCan avec leurs attributs par défaut. Et la différence entre utiliser 3 annotations et 1 @springbooTapLication est juste que, avec ceux-ci, P>

@Configuration
@EnableAutoConfiguration
@Import({ ABC.class, XYZ.class }) 


1 commentaires

D'accord, je l'ai testé avec le @Repository Annotation mais je n'ai pas compris votre suggestion à l'aide des trois annotations, devrais-je ajouter toutes les classes dans cette annotation @import ?



0
votes

Le problème est que vous mettez @service code> Annotation sur l'interface, mais il n'y aura pas de mise en œuvre de cette interface que le ressort pourrait pouvoir injecter par type. Vous avez deux possibilités:

  1. Vous devriez prolonger l'une des Data Springferrer"> Interfaces de référentiel et laisser ressentir une implémentation pour vous . En supposant que Notedentiment code> est une entité et qu'il a un identifiant de type long code>, il ressemblerait à: li> OL>
    @Repository
    public interface NoteRepository extends JpaRepository<NoteEntity, Long>{
    }
    


1 commentaires

J'ai essayé le premier sugestion, mais j'ai eu d'autres erreurs Java.Lang.NoclassDeffondesRORROR: JAVAX / Persistence / EntityManagerFactory à org.springframework.data.jpa.util.beantafinitionnoles. (Beandefinititionuti L.java:53)