【发布时间】:2020-09-04 01:27:03
【问题描述】:
因此我有一个实体类
package org.mystuff.dao.entity;
@Entity
public class Result {
@Id
private int id;
private int someStuff;
public Result(int someStuff) {
this.someStuff = someStuff;
}
public int getSomeStuff() {
return someStuff;
}
public void setSomeStuff(int SomeStuff) {
this.someStuff = someStuff;
}
}
我有一个仓库
package org.mystuff.dao.repo;
@Repository
@Transactional
public interface ResultRepository extends JpaRepository<Result, Long> {
List<Result> getResultByDate(Date date);
}
我有几个组件类
package org.mystuff.dostuff;
@Component
public class UsefulClassA {
@Autowired
private ResultRepository resultRepository;
@Autowired
private SomethingUseful somethingUseful;
private Date date;
public void doStuff() {
List<Result> resultList = resultRepository.getResultByDate(date);
// Do something with resultList
}
}
和
package org.mystuff.dostuff;
@Component
public class UsefulClassB {
@Autowired
private SomethingElseUseful somethingElseUseful;
private int a;
public void myMethod(int b) {
a = b;
}
}
我有一个测试配置类
package org.mystuff.test.config;
@RunWith(SpringRunner.class)
@ComponentScan(basePackages = "org.mystuff.dostuff")
@EnableJpaRepositories(basePackages = "org.mystuff.dao.repo", entityManagerFactoryRef = "mystuffEntityManagerFactory")
public class AppTestConfig {
@Bean
LocalContainerEntityManagerFactoryBean mystuffEntityManagerFactory() {
final LocalContainerEntityManagerFactoryBean myEntityManagerFactoryBean =
new.LocalContainerEntityManagerFactoryBean();
myEntityManagerFactoryBean.setDataSource(myDataSource);
myEntityManagerFactoryBean.setPackagesToScan("org.mystuff.dao.entity")
return myEntityManagerFactoryBean;
}
}
最后,我的测试课
package org.mystuff.test;
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = AppTestConfig.class)
public MyBigTestClass {
@Autowired
private UsefulClassB usefulClassB;
@Before
public void beforeStuff() {
// Do some before stuff
}
@Test
public void doATest() {
usefulClassB.doSomethingUseful();
}
}
我得到一个由此引起的异常
Error creating bean with name 'resultRepository': Invocation of init method failed: nested exception is java.lang.IllegalArgumentException: Not a managed type: org.mystuff.dao.entity.Result
首先,为什么容器要实例化 resultRepository?它不在我正在测试的课程中。 其次,明明是托管类型,为什么却说 Result 不是托管类型?
【问题讨论】:
-
请为您的课程添加导入,需要检查适当的导入
-
您的
ResultRepository中的Result可能有错误的import。检查一次或使用您的导入更新帖子
标签: spring hibernate jpa dependency-injection spring-data