0
votes

I am new to Spring and I am try to make a application for learning but I am getting problem in Autowiring,I am adding my code. I am working on spring boot.

DetailDossFineService

package net.capcos.ml.back.ms.dcdi.controller.rest;
import java.util.List;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import net.capcos.ml.back.ms.dcdi.configuration.Constants;
import net.capcos.ml.back.ms.dcdi.dto.DetailDossFineDTO;
import net.capcos.ml.back.ms.dcdi.service.DetailDossFineService;

@RestController
@RequestMapping(path = Constants.apiBasePath + "/detail")
public class DetailDossFinRestService {

private static final String SERVICE_NAME = "DETDOSSFIN-SERVICE";

@Autowired
private DetailDossFineService detailDossFineService;

@PostConstruct
public void init() {

}

@RequestMapping(value = {
"/service-name" }, method = RequestMethod.GET, produces = 
MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<String> getServiceName() {
return new ResponseEntity<String>(SERVICE_NAME, HttpStatus.OK);
}

/*
 * exemples :
 * http://172.16.5.95:9011/dossfine/dossiers?nom_utilisateur=NASSAFI&code_statut
 * =COAS
 */
@RequestMapping(value = { "/dossfin" }, method = RequestMethod.GET, produces = 
MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<List<DetailDossFineDTO>> 
getDetailsDossFine(@RequestParam("idDossfin") Long idDossfin) {

    
    List<DetailDossFineDTO> listeDetailsDossFine = 
detailDossFineService.getDetailsDossFine(idDossfin);

    if (listeDetailsDossFine != null && listeDetailsDossFine.size() > 0) {
        return new ResponseEntity<List<DetailDossFineDTO>>(listeDetailsDossFine, 
HttpStatus.OK);
    } else {
        return new ResponseEntity<List<DetailDossFineDTO>>(HttpStatus.NO_CONTENT);
    }

}

}

DetailDossFineDTO

package net.capcos.ml.back.ms.dcdi.dto;

import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRootName;

@JsonRootName("detail_dossfin")
@JsonInclude(Include.NON_NULL)
public class DetailDossFineDTO implements Serializable {

private static final long serialVersionUID = 1030915076726163468L;

@JsonProperty(value = "ID_DOSFIN", required = false)
private Long  idDossFin   ;

@JsonProperty(value = "IE_AFFAIRE", required = false)
private String ieAffaire   ;

@JsonProperty(value = "TYPE_DOSS", required = false)
private String typeDoss    ;

@JsonProperty(value = "W_STATUT", required = false)
private  String statut     ;

@JsonProperty(value = "COMMERCIAL", required = false)
private String commercial   ;

@JsonProperty(value = "MT_FIN", required = false)
private String mtFin       ;

@JsonProperty(value = "VR", required = false)
private String vr           ;

@JsonProperty(value = "PLM", required = false)
private String plm          ;

@JsonProperty(value = "FRDOSS", required = false)
private String frdDoss       ;

@JsonProperty(value = "TEG", required = false)
private Long teg          ;

@JsonProperty(value = "DUREE", required = false)
private Long duree        ;

@JsonProperty(value = "LOYER_PALIER", required = false)
private String loyerPalier ;

@JsonProperty(value = "DESING_BIEN", required = false)
private String desingBien  ;

@JsonProperty(value = "CRD", required = false)
private String crd          ;

@JsonProperty(value = "MT_IMP", required = false)
private String mtImp       ;

@JsonProperty(value = "NBR_IMP", required = false)
private Long nbrImp      ;

@JsonProperty(value = "PRINCE_IMP", required = false)
private String princImp    ;

@JsonProperty(value = "LC_IMP", required = false)
private String lcImp       ;

public Long getIdDossFin() {
    return idDossFin;
}

public void setIdDossFin(Long idDossFin) {
    this.idDossFin = idDossFin;
}

public String getIeAffaire() {
    return ieAffaire;
}

public void setIeAffaire(String ieAffaire) {
    this.ieAffaire = ieAffaire;
}

public String getTypeDoss() {
    return typeDoss;
}

public void setTypeDoss(String typeDoss) {
    this.typeDoss = typeDoss;
}

public String getStatut() {
    return statut;
}

public void setStatut(String statut) {
    this.statut = statut;
}

public String getCommercial() {
    return commercial;
}

public void setCommercial(String commercial) {
    this.commercial = commercial;
}

public String getMtFin() {
    return mtFin;
}

public void setMtFin(String mtFin) {
    this.mtFin = mtFin;
}

public String getVr() {
    return vr;
}

public void setVr(String vr) {
    this.vr = vr;
}

public String getPlm() {
    return plm;
    
}

public void setPlm(String plm) {
    this.plm = plm;
}

public String getFrdDoss() {
    return frdDoss;
}

public void setFrdDoss(String frdDoss) {
    this.frdDoss = frdDoss;
}

public Long getTeg() {
    return teg;
}

public void setTeg(Long teg) {
    this.teg = teg;
}

public Long getDuree() {
    return duree;
    
}

public void setDuree(Long duree) {
    this.duree = duree;
}

public String getLoyerPalier() {
    return loyerPalier;
}

public void setLoyerPalier(String loyerPalier) {
    this.loyerPalier = loyerPalier;
}

public String getDesingBien() {
    return desingBien;
}

public void setDesingBien(String desingBien) {
    this.desingBien = desingBien;
}

public String getCrd() {
    return crd;
}

public void setCrd(String crd) {
    this.crd = crd;
}

public String getMtImp() {
    return mtImp;
}

public void setMtImp(String mtImp) {
    this.mtImp = mtImp;
}

public Long getNbrImp() {
    return nbrImp;
}

public void setNbrImp(Long nbrImp) {
    this.nbrImp = nbrImp;
}

public String getPrincImp() {
    return princImp;
}

public void setPrincImp(String princImp) {
    this.princImp = princImp;
}

public String getLcImp() {
    return lcImp;
}

public void setLcImp(String lcImp) {
    this.lcImp = lcImp;
}


}

DetailDossFineVEntity

package net.capcos.ml.back.ms.dcdi.domain.virtual;

import java.io.Serializable;


 public class DetailDossFineVEntity implements Serializable {

private static final long serialVersionUID = 9083850495096291369L;



private Long  idDossFin    ;
private String ieAffaire   ;
private String typeDoss    ;
private  String statut     ;
private String commercial   ;
private String mtFin       ;
private String vr           ;
private String plm          ;
private String frdDoss       ;
private Long teg          ;
private Long duree        ;
private String loyerPalier ;
private String desingBien  ;
private String crd          ;
private String mtImp       ;
private Long nbrImp      ;
private String princImp    ;
private String lcImp       ;




public Long getIdDossFin() {
    return idDossFin;
}
public void setIdDossFin(Long idDossFin) {
    this.idDossFin = idDossFin;
}
public String getIeAffaire() {
    return ieAffaire;
}
public void setIeAffaire(String ieAffaire) {
    this.ieAffaire = ieAffaire;
}
public String getTypeDoss() {
    return typeDoss;
}
public void setTypeDoss(String typeDoss) {
    this.typeDoss = typeDoss;
}
public String getStatut() {
    return statut;
}
public void setStatut(String statut) {
    this.statut = statut;
}
public String getCommercial() {
    return commercial;
}
public void setCommercial(String commercial) {
    this.commercial = commercial;
}
public String getMtFin() {
    return mtFin;
}
public void setMtFin(String mtFin) {
    this.mtFin = mtFin;
}
public String getVr() {
    return vr;
}
public void setVr(String vr) {
    this.vr = vr;
}
public String getPlm() {
    return plm;
}
public void setPlm(String plm) {
    this.plm = plm;
}
public String getFrdDoss() {
    return frdDoss;
}
public void setFrdDoss(String frdDoss) {
    this.frdDoss = frdDoss;
}
public Long getTeg() {
    return teg;
}
public void setTeg(Long teg) {
    this.teg = teg;
}
public Long getDuree() {
    return duree;
}
public void setDuree(Long duree) {
    this.duree = duree;
}
public String getLoyerPalier() {
    return loyerPalier;
}
public void setLoyerPalier(String loyerPalier) {
    this.loyerPalier = loyerPalier;
}
public String getDesingBien() {
    return desingBien;
}
public void setDesingBien(String desingBien) {
    this.desingBien = desingBien;
}
public String getCrd() {
    return crd;
}
public void setCrd(String crd) {
    this.crd = crd;
}
public String getMtImp() {
    return mtImp;
}
public void setMtImp(String mtImp) {
    this.mtImp = mtImp;
}
public Long getNbrImp() {
    return nbrImp;
}
public void setNbrImp(Long nbrImp) {
    this.nbrImp = nbrImp;
}
public String getPrincImp() {
    return princImp;
}
public void setPrincImp(String princImp) {
    this.princImp = princImp;
}
public String getLcImp() {
    return lcImp;
}
public void setLcImp(String lcImp) {
    this.lcImp = lcImp;
}







}

DetailDossFineMapper

package net.capcos.ml.back.ms.dcdi.mapper;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Component;

import net.capcos.ml.back.ms.dcdi.domain.virtual.DetailDossFineVEntity;
import net.capcos.ml.back.ms.dcdi.dto.DetailDossFineDTO;

@Component
public class DetailDossFineMapper {

public List<DetailDossFineDTO> listeEntitiesToDTOs(List<DetailDossFineVEntity> 
 entity) {

    List<DetailDossFineDTO> listDTOs = new ArrayList<>();
    if (entity != null && entity.size() > 0) {
        for (int i = 0; i < entity.size(); i++) {
            
            listDTOs.add(entityToDTO(entity.get(i)));

        }

        return listDTOs;

    } else {
        return null;
    }

}

public DetailDossFineDTO entityToDTO(DetailDossFineVEntity entity) {
    DetailDossFineDTO dto = new DetailDossFineDTO();
    return entityToDTO(entity, dto);
}

public DetailDossFineDTO entityToDTO(DetailDossFineVEntity entity, DetailDossFineDTO 
dto) {

    if (entity != null) {
        dto.setIdDossFin(entity.getIdDossFin());
        dto.setIeAffaire(entity.getIeAffaire());
        dto.setTypeDoss(entity.getTypeDoss());
        dto.setStatut(entity.getStatut());
        dto.setCommercial(entity.getCommercial());
        dto.setMtFin(entity.getMtFin());
        dto.setVr(entity.getVr());
        dto.setPlm(entity.getPlm());
        dto.setFrdDoss(entity.getFrdDoss());
        dto.setTeg(entity.getTeg());
        dto.setDuree(entity.getDuree());
        dto.setLoyerPalier(entity.getLoyerPalier());
        dto.setDesingBien(entity.getDesingBien());
        dto.setCrd(entity.getCrd());
        dto.setMtImp(entity.getMtImp());
        dto.setNbrImp(entity.getNbrImp());
        dto.setPrincImp(entity.getPrincImp());
        dto.setLcImp(entity.getLcImp());
        

        return dto;

    } else {
        return null;
    }

}

}

DetailDossFineRepositoryCustom

package net.capcos.ml.back.ms.dcdi.repository;


 import java.util.List;
import net.capcos.ml.back.ms.dcdi.domain.virtual.DetailDossFineVEntity;

public interface DetailDossFineRepositoryCustom {

public List<DetailDossFineVEntity> getDetailsDossFine(Long idDossfin);

}

DetailDossFinRepository

package net.capcos.ml.back.ms.dcdi.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import net.capcos.ml.back.ms.dcdi.domain.sys.DualEntity;

public interface DetailDossFinRepository extends JpaRepository<DualEntity, Long>, 
DetailDossFineRepositoryCustom {

}

DetailDossFineRepositoryImpl

package net.capcos.ml.back.ms.dcdi.repository.impl;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import javax.persistence.Query;

import org.hibernate.jpa.TypedParameterValue;
import org.hibernate.type.StandardBasicTypes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;

import net.capcos.ml.back.ms.dcdi.domain.virtual.DetailDossFineVEntity;
import net.capcos.ml.back.ms.dcdi.repository.DetailDossFineRepositoryCustom;

@Repository
//@Transactional(rollbackFor = Exception.class)
public class DetailDossFineRepositoryImpl implements DetailDossFineRepositoryCustom {

@SuppressWarnings("unused")
private static final Logger log = 
LoggerFactory.getLogger(DossFineRepositoryImpl.class);

@PersistenceContext(unitName = "db-PU", type = PersistenceContextType.TRANSACTION)
private EntityManager entityManager;

@SuppressWarnings("unchecked")
@Override
public List<DetailDossFineVEntity> getDetailsDossFine(Long idDossfin) {

    // @formatter:off
    String sql="select z.ID_DOSFIN, "
               + "z.IE_AFFAIRE,"
               + "z.TYPE_DOSS,"
               + "z.W_STATUT,"
               + "z.COMMERCIAL,"
               + "z.MT_FIN,"
               + "z.VR,"
               + "z.PLM,"
               + "z.FRDOSS,"
               + "z.TEG,"
               + "z.DUREE,"
               + "z.LOYER_PALIER,"
               + "z.DESING_BIEN,"
               + "z.CRD,"
               + "z.MT_IMP,"
               + "z.NBR_IMP,"
               + "z.PRINC_IMP,"
               + "z.LC_IMP"
          + " from table(pkg_comite_0mle.DB_DETAIL_DOS_FIN_MLE(:idDossfin)) z"; 
    // @formatter:on

    Query query = entityManager.createNativeQuery(sql);

    query.setParameter("idDossfin", new TypedParameterValue(StandardBasicTypes.LONG, 
idDossfin));

    DetailDossFineVEntity detailDossFineVEntity = null;
    List<DetailDossFineVEntity> listDetailDossFineVEntity = new ArrayList<>();
    List<Object[]> rawResults;
    ;

    try {
        rawResults = (List<Object[]>) query.getResultList();

        if (rawResults != null && rawResults.size() > 0) {

            for (int i = 0; i < rawResults.size(); i++) {
                int l = 0;
                detailDossFineVEntity = new DetailDossFineVEntity();

                detailDossFineVEntity.setIdDossFin((Long) rawResults.get(i)[l++]);
                detailDossFineVEntity.setIeAffaire((String)rawResults.get(i)[l++]);
                detailDossFineVEntity.setTypeDoss((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setStatut((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setCommercial((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setMtFin((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setVr((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setPlm((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setFrdDoss((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setTeg((Long) rawResults.get(i)[l++]);
                detailDossFineVEntity.setDuree((Long) rawResults.get(i)[l++]);
                detailDossFineVEntity.setLoyerPalier((String) rawResults.get(i) 
[l++]);
                detailDossFineVEntity.setDesingBien((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setCrd((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setMtImp((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setNbrImp((Long) rawResults.get(i)[l++]);
                detailDossFineVEntity.setPrincImp((String) rawResults.get(i)[l++]);
                detailDossFineVEntity.setLcImp((String) rawResults.get(i)[l++]);
                
                listDetailDossFineVEntity.add(detailDossFineVEntity);
            }

            

        }

    } catch (Exception e) {
        listDetailDossFineVEntity = null;
    }

    return listDetailDossFineVEntity;
}

}

DetailDossFineService

package net.capcos.ml.back.ms.dcdi.service;
import java.util.List;
import javax.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import net.capcos.ml.back.ms.dcdi.domain.virtual.DetailDossFineVEntity;
import net.capcos.ml.back.ms.dcdi.dto.DetailDossFineDTO;
import net.capcos.ml.back.ms.dcdi.mapper.DetailDossFineMapper;
import net.capcos.ml.back.ms.dcdi.repository.DetailDossFinRepository;

@Service()
public class DetailDossFineService  {

@SuppressWarnings("unused")
private static final Logger LOG = 
LoggerFactory.getLogger(DetailDossFineService.class);

@Autowired
private DetailDossFinRepository detailDossFinRepository;
@Autowired
private DetailDossFineMapper detailDossFineMapper;

@PostConstruct
public void init() {

}

public List<DetailDossFineDTO> getDetailsDossFine(Long idDossfin) {

    List<DetailDossFineDTO> listDTOs;
    List<DetailDossFineVEntity> listComposedDossFine = 
detailDossFinRepository.getDetailsDossFine(idDossfin);

    listDTOs = detailDossFineMapper.listeEntitiesToDTOs(listComposedDossFine);

    return listDTOs;

}

}

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'detailDossFinRestService': Unsatisfied dependency expressed through field 'detailDossFineService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'detailDossFineService': Unsatisfied dependency expressed through field 'detailDossFinRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'detailDossFinRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List net.capcos.ml.back.ms.dcdi.repository.DetailDossFineRepositoryCustom.get_DetailDossFine(java.lang.Long)! No property get found for type DualEntity!

2
can you add your complete error stack trace? looks like some dependencies could not be created due to some other problems - fladdimir
ok i will add error now - hamza Ben laama
you can see now please halp me gays - hamza Ben laama

2 Answers

0
votes

DetailDossFineRepositoryImpl should be in the same package as DetailDossFineRepository and DetailDossFineRepositoryCustom, otherwise Spring Data will not pick up the implementation.

0
votes

The problem might be in the failing instantiation of the DetailDossFinRepository:

public interface DetailDossFinRepository extends
JpaRepository<DualEntity,Long>, // <-- what is DualEntity?
DetailDossFineRepositoryCustom {
}

Should DualEntity be DetailDossFineVEntity ?