Java jpa&x2B;弹簧&x2B;测试,找不到存储库类
我想测试spring jpa,但是 通过字段“personRepository”表示未满足的依赖关系Java jpa&x2B;弹簧&x2B;测试,找不到存储库类,java,spring,testing,spring-data-jpa,Java,Spring,Testing,Spring Data Jpa,我想测试spring jpa,但是 通过字段“personRepository”表示未满足的依赖关系 @Entity public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; private String code; private int flag; private S
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
private String code;
private int flag;
private String source;
//getters and setters ...
}
@Repository
public interface PersonRepository extends JpaRepository<Person, AtomicInteger> {
Person findByName(String name);
Person findByCodeAndName();
@Query("from Person p where p.name = :name")
Person findUser(@Param("name") String name);
}
main/resources中的my application.properties
spring.datasource.url = jdbc:mysql://localhost:3306/learnspring
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
我的测试类:这个测试需要的每个类都在pom.xml中
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = LearnConfig.class)
public class Main {
@Autowired
PersonRepository personRepository;
@Test
public void testFunctionConfig() {
Person p = personRepository.findByName("clz");
System.out.println(p.getName());
}
}
我只得到以下错误:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personRepository': Invocation of init method failed; nested exception is java.util.NoSuchElementException
Spring无法加载PersonRepository,因为
findByCodeAndName
查询方法中缺少参数,请将其更改为:
@Repository
public interface PersonRepository extends JpaRepository<Person, AtomicInteger> {
...
Person findByCodeAndName(String code, String name);
...
}
@存储库
公共接口PersonRepository扩展了JpaRepository{
...
Person findByCodeAndName(字符串代码、字符串名称);
...
}
findByCodeAndName
需要两个参数,但没有提供任何参数。事实上,我不知道我做了什么,今天下午我尝试了很多次,成功了!谢谢你的回答,这种方法也是我的错
@Repository
public interface PersonRepository extends JpaRepository<Person, AtomicInteger> {
...
Person findByCodeAndName(String code, String name);
...
}