Я хочу проверить весну jpa, но получить Неудовлетворенная зависимость, выраженная через поле «personRepository»;jpa + весна + тест, хранилище Класс не может быть найден
@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);
}
и мой ConfigClass: мне нужно было прикупить @EnableJpaRepositories?
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
@EnableJpaRepositories(
basePackages = {"learn.jpaRepository"},
basePackageClasses = {PersonRepository.class})
@EntityScan(basePackages = "learn.model")
@ComponentScan(basePackages = "learn")
@SpringBootApplication
public class LearnConfig {
}
мои 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
'findByCodeAndName' два параметра, но никто из них не был поставлен на него. – manish