IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

No qualifying bean of type 'com.exemple.dao.EntityRepository<?>' available


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Par défaut No qualifying bean of type 'com.exemple.dao.EntityRepository<?>' available
    salut tout le monde
    j'ai débuter avec un projet Spring hibernate qui contient 2 tableau Produit et categorie avec une Base de donnée MySql
    voila la classe Produit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    package com.example.entities;
     
    import java.io.Serializable;
     
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
     
    @Entity
    public class Produit implements Serializable {
     
    	@Id
    	@GeneratedValue
    	private Long idProduit;
    	@Column(length = 70)
    	private String designation;
    	private double prix;
    	private int qunatite;
    	@ManyToOne
    	@JoinColumn(name = "ID_CAT")
    	private Categorie categorie;
     
    	public Categorie getCategorie() {
    		return categorie;
    	}
     
    	public void setCategorie(Categorie categorie) {
    		this.categorie = categorie;
    	}
     
    	public Long getIdProduit() {
    		return idProduit;
    	}
     
    	public void setIdProduit(Long idProduit) {
    		this.idProduit = idProduit;
    	}
     
    	public String getDesignation() {
    		return designation;
    	}
     
    	public void setDesignation(String designation) {
    		this.designation = designation;
    	}
     
    	public double getPrix() {
    		return prix;
    	}
     
    	public void setPrix(double prix) {
    		this.prix = prix;
    	}
     
    	public int getQunatite() {
    		return qunatite;
    	}
     
    	public void setQunatite(int qunatite) {
    		this.qunatite = qunatite;
    	}
     
    	public Produit() {
    		super();
    	}
     
    	public Produit(String designation, double prix, int qunatite) {
    		super();
    		this.designation = designation;
    		this.prix = prix;
    		this.qunatite = qunatite;
    	}
     
    	public Produit(String designation, double prix, int qunatite,
    			Categorie categorie) {
    		super();
    		this.designation = designation;
    		this.prix = prix;
    		this.qunatite = qunatite;
    		this.categorie = categorie;
    	}
     
    }
    et voila la classe Categorie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    package com.example.entities;
     
    import java.io.Serializable;
    import java.util.Collection;
     
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.OneToMany;
     
    @Entity
    public class Categorie implements Serializable {
     
    	@Id
    	@GeneratedValue
    	private Long idCategorie;
    	@Column(length = 70)
    	private String nomCategorie;
    	@OneToMany(mappedBy="categorie",fetch=FetchType.LAZY)
    	private Collection<Produit> produits;
     
    	public Collection<Produit> getProduits() {
    		return produits;
    	}
     
    	public void setProduits(Collection<Produit> produits) {
    		this.produits = produits;
    	}
     
    	public Long getIdCategorie() {
    		return idCategorie;
    	}
     
    	public void setIdCategorie(Long idCategorie) {
    		this.idCategorie = idCategorie;
    	}
     
    	public String getNomCategorie() {
    		return nomCategorie;
    	}
     
    	public void setNomCategorie(String nomCategorie) {
    		this.nomCategorie = nomCategorie;
    	}
     
    	public Categorie() {
    		super();
    	}
     
    	public Categorie(String nomCategorie) {
    		super();
    		this.nomCategorie = nomCategorie;
    	}
     
    }
    et l'interface (les différentes chose à le faire )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    package com.exemple.dao;
     
    import java.util.List;
     
    public interface EntityRepository<T> {
     
    	public T save(T p);
     
    	public List<T> findAll();
     
    	public List<T> findByDesignation(String mc);
     
    	public List<T> findOne(Long id);
     
    	public T udpdate(T p);
     
    	public void delete(Long id);
     
    }
    et la classe d’implémentation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    package com.exemple.dao;
     
    import java.util.List;
     
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import javax.persistence.Query;
    import javax.transaction.Transactional;
     
    import org.springframework.stereotype.Repository;
     
    import com.example.entities.Produit;
     
    @Repository
    @Transactional
    public class ProduitImplDaoImentation implements EntityRepository<Produit> {
     
    	@PersistenceContext
    	private EntityManager em;
     
    	public Produit save(Produit p) {
    		em.persist(p);
    		return p;
    	}
     
    	public List<Produit> findAll() {
    		Query req = em.createQuery("Select p from Produit p");
    		return req.getResultList();
    	}
     
    	public List<Produit> findByDesignation(String mc) {
    		Query req = em
    				.createQuery("Select p from Produit p where p.designation like :x");
    		em.setProperty("x", mc);
    		return req.getResultList();
    	}
     
    	public List<Produit> findOne(Long id) {
    		Produit p = em.find(Produit.class, id);
    		return (List<Produit>) p;
    	}
     
    	public Produit udpdate(Produit p) {
    		em.merge(p);
    		return p;
    	}
     
    	public void delete(Long id) {
    		Produit p = em.find(Produit.class, id);
    		em.remove(p);
    	}
     
    }
    le code d' application.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    spring.datasource.url = jdbc:mysql://localhost:3306/struts
    spring.datasource.username = root
    spring.datasource.password =
    spring.datasource.driverClassName = com.mysql.jdbc.Driver
    spring.jpa.show-sql = true
    spring.jpa.hibernate.ddl-auto = create
    spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
    spring.main.banner-mode = log
    je devrais ajouter et tester les données dans les tableaux Produit et Categorie dans ma BD struts
    voila le code de menu principale de mon application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    package com.example;
     
    import com.exemple.dao.EntityRepository;
     
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ApplicationContext;
     
    import com.example.entities.Produit;
     
    @SpringBootApplication
    public class TpExemplesApplication {	
     
    	@SuppressWarnings("unchecked")
    	public static void main(String[] args) {
    		ApplicationContext apx= (ApplicationContext) SpringApplication.run(TpExemplesApplication.class, args);		
    		EntityRepository<Produit> produitDao =apx.getBean(EntityRepository.class);				
    		produitDao.save(new Produit("AS ", 7410, 85));
    		produitDao.save(new Produit("Ah ", 852, 5));
    		produitDao.save(new Produit("HP ", 1500, 100));		
    	}
    }
    les tableaux sont ajouter avec ses composants sans l'insertion des données et voila le code d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    2016-11-27 13:26:46.403  INFO 6112 --- [           main] com.example.TpExemplesApplication        : Starting TpExemplesApplication on Wajih-PC with PID 6112 (started by java in C:\travail Kepler\TP_Exemples)
    2016-11-27 13:26:46.403  INFO 6112 --- [           main] com.example.TpExemplesApplication        : No active profile set, falling back to default profiles: default
    2016-11-27 13:26:46.899  INFO 6112 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5e8bc44a: startup date [Sun Nov 27 13:26:46 WAT 2016]; root of context hierarchy
    2016-11-27 13:26:49.835  INFO 6112 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$fe08ed4b] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2016-11-27 13:26:50.830  INFO 6112 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
    2016-11-27 13:26:50.847  INFO 6112 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
    2016-11-27 13:26:50.849  INFO 6112 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.6
    2016-11-27 13:26:51.005  INFO 6112 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    2016-11-27 13:26:51.006  INFO 6112 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 4111 ms
    2016-11-27 13:26:51.376  INFO 6112 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
    2016-11-27 13:26:51.383  INFO 6112 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
    2016-11-27 13:26:51.384  INFO 6112 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
    2016-11-27 13:26:51.384  INFO 6112 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
    2016-11-27 13:26:51.385  INFO 6112 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
    2016-11-27 13:26:52.011  INFO 6112 --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
    2016-11-27 13:26:52.047  INFO 6112 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
    	name: default
    	...]
    2016-11-27 13:26:52.198  INFO 6112 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {5.0.11.Final}
    2016-11-27 13:26:52.202  INFO 6112 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
    2016-11-27 13:26:52.205  INFO 6112 --- [           main] org.hibernate.cfg.Environment            : HHH000021: Bytecode provider name : javassist
    2016-11-27 13:26:52.310  INFO 6112 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
    2016-11-27 13:26:52.871  INFO 6112 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
    2016-11-27 13:26:53.530  INFO 6112 --- [           main] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000227: Running hbm2ddl schema export
    Hibernate: alter table produit drop foreign key FK6mfi292w75rgsluywqkrtbdtn
    Hibernate: drop table if exists categorie
    Hibernate: drop table if exists produit
    Hibernate: create table categorie (id_categorie bigint not null auto_increment, nom_categorie varchar(70), primary key (id_categorie))
    Hibernate: create table produit (id_produit bigint not null auto_increment, designation varchar(70), prix double precision not null, qunatite integer not null, id_cat bigint, primary key (id_produit))
    Hibernate: alter table produit add constraint FK6mfi292w75rgsluywqkrtbdtn foreign key (id_cat) references categorie (id_categorie)
    2016-11-27 13:26:55.577  INFO 6112 --- [           main] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000230: Schema export complete
    2016-11-27 13:26:55.629  INFO 6112 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
    2016-11-27 13:26:56.363  INFO 6112 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5e8bc44a: startup date [Sun Nov 27 13:26:46 WAT 2016]; root of context hierarchy
    2016-11-27 13:26:56.526  INFO 6112 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
    2016-11-27 13:26:56.527  INFO 6112 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
    2016-11-27 13:26:56.606  INFO 6112 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2016-11-27 13:26:56.606  INFO 6112 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2016-11-27 13:26:56.707  INFO 6112 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2016-11-27 13:26:56.799  WARN 6112 --- [           main] .t.AbstractTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
    2016-11-27 13:26:58.357  INFO 6112 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
    2016-11-27 13:26:58.463  INFO 6112 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
    2016-11-27 13:26:58.472  INFO 6112 --- [           main] com.example.TpExemplesApplication        : Started TpExemplesApplication in 12.837 seconds (JVM running for 13.267)
    Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.exemple.dao.EntityRepository<?>' available
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:348)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:335)
    	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093)
    	at com.example.TpExemplesApplication.main(TpExemplesApplication.java:17)
    les tableaux sont ajoutés avec succès mais le problème d'insertion je ne sais pas comment le résoudre
    Y-a-t il une modification ajouter à mon programme? et merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2016
    Messages : 25
    Par défaut
    Apparement, Spring ne trouve pas la définition du bean "EntityRepository<?>". A ce que je vois, ce bean est annoté convenablement et est dans un sous-package de la classe main. Ainsi, je suppose que le problème doit venir du fait qu'il est implémenté par deux bean spring en l'occurence "ProduitImplDaoImentation" et "CatégorieImplDaoImentation". Dans ce cas il faudrait spécifier quelle implémentation tu veux appeler puisqu"il en a deux

Discussions similaires

  1. [Framework] Erreur "No qualifying bean of type found for dependency"
    Par shark59 dans le forum Spring
    Réponses: 5
    Dernier message: 04/06/2018, 00h55
  2. Réponses: 1
    Dernier message: 19/07/2016, 10h50
  3. Réponses: 4
    Dernier message: 20/11/2015, 17h12
  4. error setting property in bean of type null
    Par ouedmouss dans le forum JSF
    Réponses: 8
    Dernier message: 23/01/2007, 12h52
  5. [JSF] Erreur "bean of type null"
    Par vallica dans le forum JSF
    Réponses: 5
    Dernier message: 27/03/2006, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo