2017-03-24 2 views
1

Gibt es eine Möglichkeit Springcharge mit Federdaten zu integrieren? Ich sehe RepositoryItemWriter und RepositoryItemWriter im Frühjahr DokumentationFedercharge mit Federdaten

+2

, dass die Art und Weise, es zu tun. Gab es noch etwas, wonach du gesucht hast? –

+0

gut ich tue, dass in einer anderen Weise, die ich den Dienst in die Job-Konfiguration bin Injektion und rufen Sie die Methode, die auf dem JpaRepository, wie in diesem Beispiel @ Bean \t @ StepScope \t öffentliche ItemWriter customerItemWriter2() verfügbar ist { \t \t Rückholeinzelteilen -> { \t \t \t für (Customer Artikel: Artikel) { \t \t \t \t \t \t \t \t customerService.save (Element); \t \t \t} \t \t}; \t} – kaissun

+0

Warum sollten Sie das tun, wenn wir den 'RepositoryItemWriter' für Sie haben? –

Antwort

0

gut ich tue, dass in einer anderen Art und Weise, ich bin den Dienst in die Job-Konfiguration Injektion und die Methode aufrufen, die auf dem JpaRepository, wie in diesem Beispiel verfügbar ist

@Bean 
    @StepScope 
    public ItemWriter<Customer> customerItemWriter2() { 
     return items -> { 
      for (Customer item : items) { 

       customerService.save(item); 
      } 
     }; 
    } 
3

Sie sind völlig richtig. Spring Batch kann leicht mit Federdaten integriert werden. Hier Beispiel Artikel Leser:

@Bean(name = "lotteryInfoReader") 
    @StepScope 
    public RepositoryItemReader<LotteryInfo> reader() { 
     RepositoryItemReader<LotteryInfo> reader = new RepositoryItemReader<>(); 
     reader.setRepository(lotteryInfoRepository); 
     reader.setMethodName("findAll"); 
     reader.setSort(Collections.singletonMap("name", Sort.Direction.ASC)); 
     return reader; 
    } 

Hier ist ein weiteres Beispiel mit der Verwendung von Hibernate ohne Feder Daten:

@Bean(name = "drawsWriter") 
    @StepScope 
    public ItemWriter<? super List<Draw>> writer() { 
     return items -> items.stream() 
       .flatMap(Collection::stream) 
       .forEach(entityManager::merge); 
    }