Я получаю сообщение об ошибке вызова метода инициализации; вложенное исключение java .lang.IllegalArgumentException в методе класса репозитория Вызов - PullRequest
0 голосов
/ 07 августа 2020

Я получаю следующее исключение при запуске моей службы

... org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания bean-компонента с именем 'levelDetailsService': неудовлетворенная зависимость, выраженная через поле 'storeRepo'; вложенное исключение - org.springframework.beans.factory.BeanCreationException: Ошибка при создании bean-компонента с именем storeRepo: не удалось вызвать метод инициализации; вложенное исключение: java .lang.IllegalArgumentException: Ошибка проверки для запроса для метода publi c abstract java .util.List com.tcs.opt.promotion.masterservice.dao.repo.StoreRepo.getStoreList (java .lang.Integer, java .util.List, java .lang.Character)! ...

Это мой вызов метода для репозитория на уровне обслуживания

List<Object[]> storeObjs=storeRepo.getStoreList(salesOrgId,storeRequestDTO.getClassId(),'Y');

Здесь salesOrgId - целое число, storeRequestDTO.getClassId () - это список Целое число

Класс репо

@Repository
public interface StoreRepo extends JpaRepository<StoreEntity, Integer> {
    

    @Query("select str.store_id,str.store_number,str.store_name,str.city,str.state from StoreEntity str left outer join master.promo_market_store pstr "
            + "on str.store_id=pstr.store_id where str.salesOrgID=:salesOrgID and pstr.level_id in (:levelIdList) and str.activeF=:activeF")
    List<Object[]> getStoreList(@Param("salesOrgID") Integer salesOrgID,@Param("levelIdList") List<Integer> levelIdList,@Param("activeF") Character activeF);

}

Класс сущности

@Entity
@Table(name=MasterQueryConstants.STORE_TBL,schema=MasterQueryConstants.MASTER_SCHEMA)
public class StoreEntity implements Serializable{
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name="store_id")
    private Integer storeId;
    @Column(name="sales_org_id")
    private Integer salesOrgID;
    @Column(name="store_number")
    private Integer storeNumber;
    @Column(name="store_name")
    private String storeName;
    @Column(name="store_description")
    private String storeDescription;
    @Column(name="active_f")
    private Character activeF;
    @Column(name="city")
    private String city;
    @Column(name="state")
    private String state;
    
    
    public Integer getStoreId() {
        return storeId;
    }
    public void setStoreId(Integer storeId) {
        this.storeId = storeId;
    }
    public Integer getSalesOrgID() {
        return salesOrgID;
    }
    public void setSalesOrgID(Integer salesOrgID) {
        this.salesOrgID = salesOrgID;
    }
    public Integer getStoreNumber() {
        return storeNumber;
    }
    public void setStoreNumber(Integer storeNumber) {
        this.storeNumber = storeNumber;
    }
    public String getStoreName() {
        return storeName;
    }
    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }
    public String getStoreDescription() {
        return storeDescription;
    }
    public void setStoreDescription(String storeDescription) {
        this.storeDescription = storeDescription;
    }
    public Character getActiveF() {
        return activeF;
    }
    public void setActiveF(Character activeF) {
        this.activeF = activeF;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    
    public StoreEntity()
    {
        /**
         * Default Constructor
         */
    }
}

Пожалуйста, помогите мне решить эту проблему,

1 Ответ

0 голосов
/ 07 августа 2020

Я бы сказал, что эта ошибка означает, что синтаксис @Query неверен. Дальнейшие подробности, вероятно, появятся ниже по трассировке стека, но мне кажется, что вы, вероятно, перепутали имена столбцов и имена свойств в своем запросе.

Вы должны использовать имена свойств, поскольку Java их знает, скорее чем имя столбца в вашем запросе.

Итак, storeId, а не store_id. et c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...