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?