Home:ALL Converter>Micronaut jdbcOperations not injected to repository

Micronaut jdbcOperations not injected to repository

Ask Time:2021-04-18T20:17:18         Author:maun

Json Formatter

I am following a guide on Micronaut docs on how to setup a JDBC repository and for some reason I can't get it to work. I added a sample code of what I am doing.

Repository:

@JdbcRepository(dialect = Dialect.POSTGRES)
abstract class PersonRepository implements CrudRepository<Person, Long> {

    private JdbcOperations jdbcOperations;

    PersonRepository(JdbcOperations jdbcOperations) {
        this.jdbcOperations = jdbcOperations
    }

    @Transactional
    List<Person> search() {
        String sql = "select * from person";
        return jdbcOperations.prepareStatement(sql, statement -> {
            ResultSet resultSet = statement.executeQuery();
            return jdbcOperations.entityStream(resultSet, Person.class).collect(Collectors.toList());
        });
    }

application.yml:

datasources:
  default:
   url: jdbc:postgresql://localhost:8001/postgres
   driverClassName: org.postgresql.Driver
   username: postgres
   password: 'postgres'
   dialect: POSTGRES
   logsql: true


jpa:
  default:
    properties:
      hibernate:
        hbm2ddl:
          auto: update

dependencies for the application

dependencies {

compileOnly "io.micronaut:micronaut-inject-groovy"
implementation("io.micronaut:micronaut-http-client")
implementation("io.micronaut.data:micronaut-data-hibernate-jpa")
implementation("io.micronaut.groovy:micronaut-runtime-groovy")
implementation("io.micronaut.liquibase:micronaut-liquibase")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
implementation("javax.annotation:javax.annotation-api")
implementation group: 'com.vladmihalcea', name: 'hibernate-types-52', version: '2.10.4'
implementation group: 'io.micronaut.security', name: 'micronaut-security', version: '2.4.0'
implementation group: 'io.micronaut.security', name: 'micronaut-security-jwt', version: '2.4.0'
implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6'
implementation("io.micronaut.data:micronaut-data-jdbc")

compileOnly("io.micronaut.data:micronaut-data-processor")
testImplementation("org.testcontainers:postgresql")
testImplementation("org.testcontainers:spock")
testImplementation("org.testcontainers:testcontainers")
implementation("io.micronaut:micronaut-validation")
runtimeOnly("ch.qos.logback:logback-classic")
runtimeOnly("org.postgresql:postgresql")

testAnnotationProcessor "io.micronaut:micronaut-inject-groovy"

annotationProcessor "io.micronaut:micronaut-inject-groovy"
annotationProcessor "io.micronaut:micronaut-validation"
compileOnly("jakarta.persistence:jakarta.persistence-api:2.2.2")

}

Error:

 Unexpected error occurred: No such property: jdbcOperations for class: com.example.repositories.PersonRepository

Any suggestions?

Author:maun,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/67148419/micronaut-jdbcoperations-not-injected-to-repository
yy