2016-04-11 6 views
-1

org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen Bean mit Name 'MiParteTrabajoDao': Injektion von Autowired Abhängigkeiten fehlgeschlagen; Verschachtelte Ausnahme ist org.springframework.beans.factory.BeanCreationException: Feld konnte nicht authired werden: private com.mydomain.repository.produccion.ParteTrabajoRepository com.mydomain.dao.produccion.ParteTrabajoDaoExample.parteRepository; verschachtelte Ausnahme ist org.springframework.beans.factory.NoSuchBeanDefinitionException: Keine berechtigte Bean vom Typ [com.mydomain.repository.produccion.ParteTrabajoRepository] gefunden für die Abhängigkeit: erwartet mindestens 1 Bean, die sich als Autowire-Kandidat für diese Abhängigkeit qualifiziert. Dependency Anmerkungen: {@ javax.inject.Inject()}Fehler @Autowired eine Schnittstelle mit einem anderen Projekt

package com.mydomain.repository; 

import java.io.Serializable; 
import java.util.List; 

import org.springframework.data.jpa.repository.JpaRepository; 
import org.springframework.data.repository.NoRepositoryBean; 

@NoRepositoryBean 
public interface CrudRepository<T, ID extends Serializable> extends JpaRepository<T, ID> { 

    @Override 
    <S extends T> S save(S entity); 

    @Override 
    T findOne(ID primaryKey); 

    @Override 
    List<T> findAll(); 

    @Override 
    long count(); 
    @Override 
    void delete(T entity); 
    @Override 
    boolean exists(ID primaryKey); 
} 

und

package com.mydomain.repository.produccion; 

public interface ParteTrabajoRepository extends CrudRepository<PParteTrabajo, PParteTrabajoPK> { 

    @Query(value = "select u from PParteTrabajo u where u.idParteTrabajo like %?1", nativeQuery = true) 
    public PParteTrabajo findByIdParteTrabajo(int idParteTrabajo); 
} 

und

package com.mydomain.dao.produccion; 

public interface ParteTrabajoDaoI { 

    public List<PParteTrabajo> findAll(); 
} 

und

package com.mydomain.dao.produccion; 

@Repository("MiParteTrabajoDao") 
public class ParteTrabajoDaoExample implements ParteTrabajoDaoI { 

    @Autowired 
    private ParteTrabajoRepository parteRepository; 

    @Override 
    public List<PParteTrabajo> findAll() { 
     final List<PParteTrabajo> lista = parteRepository.findAll(); 
     return null; 
    } 
} 

und

package com.mydomain.services.produccion; 

import com.mydomain.entities.produccion.PParteTrabajo; 
import com.mydomain.util.dao.DaoException; 
import com.mydomain.util.exception.FindException; 

public interface ParteTrabajoServiceI<T> { 

    public T iniciarParteTrabajo(int idMaquina, int idEstacion, int idOperario, int idTrabajo, int idOrden) 
      throws FindException; 

    public PParteTrabajo iniciarFinalizarParteTrabajo(int idMaquina, int idEstacion, int idOperario, int idTrabajo, 
      int idOrden) throws FindException, DaoException; 

    public T iniciarParteTrabajoMaquinaTrabajoUnico(int idMaquina, int idOperario, int idOrden) throws FindException, 
      DaoException; 

    public PParteTrabajo finalizarParteTrabajo(T parteTrabajoIniciado, BigDecimal cantidad) throws DaoException, 
      FindException; 

    public List<PParteTrabajo> finalizarPartesTrabajosIniciados(int idMaquina, int idOperario) throws FindException, 
      DaoException; 

    public List<T> getPartesTrabajoIniciados(int idMaquina, int idOperario) throws FindException; 

    public List<T> getPartesTrabajoIniciados(int idMaquina) throws FindException; 

    public List<T> findAll() throws FindException; 

} 

und

package com.mydomain.services.produccion; 

import com.mydomain.dao.produccion.ParteTrabajoDaoI; 
import com.mydomain.entities.produccion.PParteTrabajo; 
import com.mydomain.util.dao.DaoException; 
import com.mydomain.util.exception.FindException; 

@Service("parteTrabajoServicePrueba") 
public class ParteTrabajoServiceExample implements 
     ParteTrabajoServiceI<ParteTrabajoServiceExample.ParteTrabajoIniciado> { 

    @Autowired 
    @Qualifier("MiParteTrabajoDao") 
    private ParteTrabajoDaoI parteTrabajoDaoI; 

    @Override 
    public List<ParteTrabajoIniciado> getPartesTrabajoIniciados(final int idMaquina, final int idOperario) { 

     return null; 
    } 

    public class ParteTrabajoIniciado { 
     private final PParteTrabajo parte; 

     private ParteTrabajoIniciado(final PParteTrabajo parteTrabajo) { 
      parte = parteTrabajo; 
     } 

     public int getIdOrdenProduccion() { 
      return parte.getIdOrdenProduccion(); 
     } 
    } 
.... 
} 

und

package com.mydomain.iweb; 

@SpringBootApplication 
@Configuration 
@Import(com.mydomain.services.ServicesBeanConfig.class) 
@EnableTransactionManagement 
@EnableAutoConfiguration 
@PropertySource("file:etc/application.properties") 
@EnableJpaRepositories("com.mydomain.repository,com.mydomain.dao") 
public class Application { 

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

    @Value("${spring.datasource.jndi-name}") 
    private String jndiResourceName; 
    @Value("${spring.datasource.name}") 
    private String jdbcName; 
    @Value("${spring.datasource.driver-class-name}") 
    private String jdbcDriverClassName; 
    @Value("${spring.datasource.url}") 
    private String jdbcUrl; 

    @Inject 
    ApplicationContext ctx; 

    public static void main(final String[] args) { 
     SpringApplication.run(Application.class, args); 

    } 
..... 
} 

Antwort

0

Sie die Bohne verpasst haben die ParteTrabajoRepo Umsetzung sittliche Schnittstelle.

com.mydomain.repository.produccion.ParteTrabajoRepository ist nur eine Schnittstelle, aber es braucht eine konkrete Umsetzung, damit es mit @Autowired

+0

verzeihen meine begrenzte Erfahrung mit dem Frühling, schuf ich die Konfiguration von Dienstleistungen. Aber ich konnte nicht als Schnittstelle für die DAO realisiert werden. –

0

Der Wert für EnableJpaRepositories ist falsch eingespritzt werden. Der Wert ist ein Array, so sollte es

@EnableJpaRepositories(value ={"com.mydomain.repository","com.mydomain.dao"}) 

Die Art und Weise Sie es Frühling erklärt würde versuchen, nur ein Paket mit dem Namen zu scannen

„com.mydomain.repository, com.myDomain .dao "

was sicher nicht das ist, was Sie wollen.

Verwandte Themen