2014-10-29 4 views
0

Я пытаюсь написать простое приложение Spring Spring JPA для Spring Boot в Groovy. Я последовал за getting started guide и сделал некоторое базовое преобразование, чтобы заставить его работать с Groovy и Spring Boot CLI.Spring Data JPA репозитории не создаются автоматически с помощью CommandLineRunner

Я бегу код с весеннем загрузки CLI (v1.1.8):

spring run app.groovy 

Это приводит к ошибке:

NoSuchBeanDefinitionException: No qualifying bean of type [hello.CustomerRepository] is defined 

Кто-нибудь есть идея, почему Repository не создается автоматически? Я чувствую, что мне нужно пропустить что-то простое. Вот файл, содержащий app.groovy всех кода:

package hello 

@Grab("spring-boot-starter-data-jpa") 
@Grab("h2") 

import java.util.List 
import javax.persistence.* 
import org.springframework.boot.SpringApplication 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration 
import org.springframework.context.ConfigurableApplicationContext 
import org.springframework.context.annotation.Configuration 
import org.springframework.data.repository.CrudRepository 

@Entity 
class Customer { 
    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    long id 
    String name 

    Customer() {} 
    Customer(String name) { 
     this.name = name 
    } 
} 

interface CustomerRepository extends CrudRepository<Customer, Long> { 
    List<Customer> findByName(String name) 
} 

@Configuration 
@EnableAutoConfiguration 
class Application implements CommandLineRunner { 

    @Autowired 
    ConfigurableApplicationContext context 

    void run(String[] args) { 
     CustomerRepository repository = context.getBean(CustomerRepository.class) 
     repository.save(new Customer("Jack", "Bauer")) 
    } 
} 
+0

вы пробовали добавлять '@ EnableJpaRepositories' – cfrick

+0

Да, я попытался добавить @EnableJpaRepositories к классу приложений. Это не изменило результат. –

ответ

1

заводной CLI приложение может сканировать только для JPA хранилищ, если вы даете ему фактические классы (то есть не в .groovy скриптов). Вы можете создать файл фляги и запустить это, и он должен работать:

$ spring jar app.jar app.groovy 
$ java -jar app.jar 
+0

Это исправлено, спасибо! –

Смежные вопросы