【发布时间】:2019-10-14 19:18:01
【问题描述】:
您好,我正在尝试在 Spring Boot 应用程序启动时加载一些数据库值。我有自动接线服务,在服务中我有自动接线的道。下面是错误。
org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“validationExpressionService”的bean时出错:通过字段“validationExpressionDao”表达的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“IValidationExpressionDao”的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.IllegalArgumentException: Not a managed type: class com.ril.nfg.dao.bean.ValidationExpression
我添加了@EnitityScan @EnableJPARepository 仅供参考,字符串中的主键,希望没问题。
实体
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 服务的类
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。请帮助我理解这段代码有什么问题。提前致谢
【问题讨论】:
标签: spring-boot spring-data-jpa