Skip to content

Oracle native BOOLEAN guide - #1865

Open
radovanradic wants to merge 6 commits into
masterfrom
micronaut-data-oracle-boolean
Open

radovanradic wants to merge 6 commits into
masterfrom
micronaut-data-oracle-boolean

Conversation

@radovanradic

@radovanradic radovanradic commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds the micronaut-data-oracle-boolean guide (Java, Kotlin, Groovy). It shows how to map Java boolean properties to native Oracle BOOLEAN columns (Oracle Database 23.1+ / 26ai) with Micronaut Data JDBC 5.2.

Example

A small task list where each task has a completed flag.

  • Repository: @JdbcRepository(dialect = Dialect.ORACLE, version = "23.1") with:
    • findByCompletedTrue() / findByCompletedFalse(), which generate IS TRUE / IS FALSE
    • findByCompleted(boolean), which binds the value as a JDBC BOOLEAN
    • updateCompleted(id, completed)
  • Configuration: datasources.default.dialect-options.version=23.1, so schema generation creates BOOLEAN instead of NUMBER(1). Test Resources uses gvenzl/oracle-free:latest.
  • Controller: create, list open, list completed, and complete endpoints, with curl examples.

Guide explains

  • Why the target version is set in two places: for repository SQL at compile time, and on the datasource for schema generation at startup
  • The two ways to set the repository SQL target:
    • The build-wide option micronaut.data.sql.dialect-options.oracle.version, with a snippet for each build (Gradle Java/Kotlin/Groovy, Maven Java/Groovy)
    • @JdbcRepository(version = ...) on a single repository, which takes precedence over the build-wide option
  • The default NUMBER(1) / = 1 mapping used when no version is set
  • The startup warning logged when the database is older than the target version

Testing

  • ./gradlew micronautDataOracleBooleanBuild -x micronautDataOracleBooleanRunNativeTestScript passes
  • Gradle Java/Kotlin/Groovy and Maven Java: 3 tests each pass against Oracle Database Free
    • Checks that USER_TAB_COLUMNS reports BOOLEAN for the column
    • Runs the boolean repository queries
    • Does an HTTP round trip
  • Build-wide option verified for Gradle Java/Kotlin/Groovy and Maven Java: with version removed from the repository, the compiled queries use IS TRUE

micronaut-data-oracle-boolean-gradle-groovy.pdf
micronaut-data-oracle-boolean-gradle-java.pdf
micronaut-data-oracle-boolean-gradle-kotlin.pdf
micronaut-data-oracle-boolean-maven-groovy.pdf
micronaut-data-oracle-boolean-maven-java.pdf
micronaut-data-oracle-boolean-pyronaut-python.pdf

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant