0

I have PoC to test Spring-Batch with MySql and Key-Value together.

POM

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-batch</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-keyvalue</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

Application

@SpringBootApplication
@EnableMapRepositories
public class SpringBatchPocApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBatchPocApplication.class, args);
    }
}

application.properties

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3307/pocdb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.sql.init.platform=mysql
file.input=animal-list.csv
spring.batch.job.enabled=false
spring.batch.jdbc.initialize-schema=always

key-value entity

@Data
@Builder(setterPrefix = "with")
@NoArgsConstructor
@AllArgsConstructor
@KeySpace("imAnimal")
public class IMAnimal {
    @Id
    private UUID id;
    private String name;
    private String type;
    private boolean processed;
}

key-value repository

@Repository
public interface IMAnimalRepository extends CrudRepository<IMAnimal, UUID> {
    
}

Than I have a service to controll key-value repository:

@Service
public class DatabaseService {
    @Autowired
    private IMAnimalRepository repository;
    ...

Yet, when I run my application, the IMAnimalRepository is not found by spring context.

Field repository in name.jikra.springbatchpoc.service.DatabaseService required a bean of type 'name.jikra.springbatchpoc.repository.IMAnimalRepository' that could not be found.

My guess is, there is a collision with JPA dataSource or something like this. Is there a way to put it together?

JiKra
  • 1,618
  • 3
  • 29
  • 45

0 Answers0