java.lang.IllegalArgumentException: не управляемый тип: класс при инициализации компонента репозитория - PullRequest
2 голосов
/ 29 мая 2019

Привет. Я пытаюсь загрузить некоторые значения базы данных во время запуска весенней загрузки приложения.У меня есть автосервис, а в сервисе у меня есть автодом Дао.Ниже приведена ошибка.

org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании компонента с именем 'validationExpressionService': неудовлетворенная зависимость, выраженная через поле 'validationExpressionDao';вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'IValidationExpressionDao': сбой вызова метода init;Вложенное исключение - java.lang.IllegalArgumentException: неуправляемый тип: класс com.ril.nfg.dao.bean.ValidationExpression

Я добавил @EnitityScan @EnableJPARepository FYI, первичный ключ в данном случае вСтрока, надеюсь, что все в порядке.

Сущность

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * The Class ValidationExpression.
 */
package com.ril.nfg.dao.bean;

@Entity
@Table(name = "VALIDATION_EXPRESSION")
public class ValidationExpression implements Serializable {


    private static final long serialVersionUID = 9096950800262493651L;

    private String validationId;
    private String expression;
    private String createdBy;
    private Date createdOn;
    private String description;
    private String responseCode;

     @Id
     @Column(name = "VALIDATION_ID", nullable = false, length = 100)
    public String getValidationId() {
        return validationId;
    }

    public void setValidationId(String validationId) {
        this.validationId = validationId;
    }

     @Column(name = "EXPRESSION", nullable = false, length = 200)
    public String getExpression() {
        return expression;
    }

    public void setExpression(String expression) {
        this.expression = expression;
    }
//remaining getters and setters
}

Репозиторий

package com.ril.nfg.dao.repos;

import com.ril.nfg.dao.bean.ValidationExpression;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

/**
 * The Interface IValidationExpressionDao.
 */
@Repository
public interface IValidationExpressionDao extends JpaRepository<ValidationExpression, String> {
}

Служба

import java.util.List;

@Service
public class ValidationExpressionService {

    @Autowired
    IValidationExpressionDao validationExpressionDao;

    public List<ValidationExpression> getAll() {
        return validationExpressionDao.findAll();
    }
}

Класс с @Autwired Service

public class CacheModuleParam implements ApplicationContextAware{

private static List<ValidationExpression> validationExpressionList = null;

@Autowired
    ValidationExpressionService validationExpressionService;

@Override
    public void setApplicationContext(final ApplicationContext appContext) throws BeansException {
validationExpressionList = validationExpressionService.getAll();
}
}

Класс приложения

@ComponentScan(basePackages = {"com.ril.nfg"})
@EnableWebMvc
@EnableAutoConfiguration
@SpringBootApplication//(exclude={DataSourceAutoConfiguration.class})
@EnableJpaRepositories(basePackages="com.ril.nfg.dao.repos",entityManagerFactoryRef="oracleEntityManagerFactory")
//@EntityScan(basePackages = "com.ril.nfg.dao.bean")
public class NFGApplication {

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

}

Все решения в Интернете ориентированы на @EntityScan.Пожалуйста, помогите мне понять, что не так с этим кодом.Заранее спасибо

1 Ответ

0 голосов
/ 29 мая 2019

Почему у вас есть все эти настройки?Просто поместите наше приложение в дерево пакетов на один уровень выше всех других классов, и вы можете использовать такой класс:

@SpringBootApplication
public class NFGApplication {

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

}

Пакеты:

com.ril.nfg <- here you put NFGApplication

И все остальные классы вподпакеты com.ril.nfg

И тогда все будет работать!

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