Im создания весны загрузки приложения. Я хочу сохранить свой testEntity в базе данных. Im после этого учебника: https://spring.io/guides/gs/accessing-data-jpa/ Стол должен быть создан автоматически для сохранения Entity.Как создать объект и сохранить его в базе данных?
Однако, когда я пытаюсь запустить его как Spring Booot App им получать follwoing ошибки:
Error creating bean with name 'demo' defined in backend.Application: Unsatisfied dependency expressed through constructor argument with index 0 of type [test.EntityRepo]: : No qualifying bean of type [test.EntityRepo] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [test.EntityRepo] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.
No qualifying bean of type [test.EntityRepo] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
Пожалуйста, объясните, что я делаю неправильно и как это исправить?
Ниже вы можете найти конфигурацию и классы данных.
application.properties:
spring.datasource.url=jdbc:oracle:thin://localhost:1521/orcl
spring.datasource.username=HR
spring.datasource.password=orcl
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.properties.hibernate.globally_quoted_identifiers=true
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.jpa.show-sql=true
testEntity:
package test;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import org.springframework.data.annotation.Id;
@Entity
public class testEntity {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long ID;
private String name;
public testEntity() {}
public testEntity(long iD) {
ID = iD;
}
public testEntity(String name) {
this.name = name;
}
public long getID() {
return ID;
}
public void setID(long iD) {
ID = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
entityRepository:
package test;
import java.util.List;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface EntityRepo extends CrudRepository<testEntity, Long>{
List<testEntity> findByName(String name);
}
JPA Класс конфигурации:
@Configuration
@EnableJpaRepositories
@EnableTransactionManagement
class JpaConfiguration {
@Bean
public DataSource dataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder.setType(EmbeddedDatabaseType.H2).build();
}
@Bean
public EntityManagerFactory entityManagerFactory() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(true);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("test");
factory.setDataSource(dataSource());
factory.afterPropertiesSet();
return factory.getObject();
}
@Bean
public PlatformTransactionManager transactionManager() {
JpaTransactionManager txManager = new JpaTransactionManager();
txManager.setEntityManagerFactory(entityManagerFactory());
return txManager;
}
}
класс с основным:
@EnableSwagger2
@SpringBootApplication
@EnableMapRepositories
public class Application extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public void demo(EntityRepo repository){
repository.save(new testEntity("jack"));
}
не помогло, такие же ошибки отображаются –
сохраните свой демонстрационный метод, как указано выше, и удалите @Repository из вашего интерфейс. очистите свой проект и снова запустите. –
Если вы не можете использовать мой код здесь: (обратите внимание: его градиент, но вы можете преобразовать его в maven) https://drive.google.com/file/d/0B_EVyl90ivXwbHlXZDNwcGg5eHM/view –