33Idiomatic Kotlin codegen target for Spring-Boot-Kotlin consumers on Exposed +
44Flyway. The Kotlin port is a ** codegen tier built on top of the Java port** — the
55loader, OMDB persistence engine, render engine, Maven plugin, and conformance
6- runners are all Java; Kotlin emits idiomatic Kotlin (` @Serializable data class` ,
6+ runners are all Java; Kotlin emits idiomatic Kotlin (` data class ` ,
77Exposed ` Table ` objects, extension-fn relationship helpers, Spring ` @Configuration `
88wiring) via KotlinPoet.
99
@@ -39,6 +39,26 @@ Two modules:
3939 <artifactId >exposed-core</artifactId >
4040 <version >${exposed.version}</version >
4141 </dependency >
42+ <!-- Generated typed `field.object @storage:jsonb` / `field.map` columns serialize through a
43+ generated per-package `MetaJsonbMapper.kt` Jackson `ObjectMapper` (no kotlinx-serialization
44+ compiler plugin required). -->
45+ <dependency >
46+ <groupId >com.fasterxml.jackson.core</groupId >
47+ <artifactId >jackson-databind</artifactId >
48+ <version >${jackson.version}</version >
49+ </dependency >
50+ <dependency >
51+ <groupId >com.fasterxml.jackson.module</groupId >
52+ <artifactId >jackson-module-kotlin</artifactId >
53+ <version >${jackson.version}</version >
54+ </dependency >
55+ <dependency >
56+ <groupId >com.fasterxml.jackson.datatype</groupId >
57+ <artifactId >jackson-datatype-jsr310</artifactId >
58+ <version >${jackson.version}</version >
59+ </dependency >
60+ <!-- FR-006 output parser + prompt-payload lane; also backs the open-bag
61+ `field.string @dbColumnType:jsonb` → kotlinx `JsonElement` path. -->
4262 <dependency >
4363 <groupId >org.jetbrains.kotlinx</groupId >
4464 <artifactId >kotlinx-serialization-json</artifactId >
@@ -53,7 +73,7 @@ The 9 generators in `codegen-kotlin`:
5373
5474| Generator | Output | Per |
5575| ---| ---| ---|
56- | ` KotlinEntityGenerator ` | ` <Entity>.kt ` — ` @Serializable data class` | every ` object.entity ` + ` object.value ` |
76+ | ` KotlinEntityGenerator ` | ` <Entity>.kt ` — Kotlin ` data class ` (Jackson-compatible; no ` @Serializable ` ) | every ` object.entity ` + ` object.value ` |
5777| ` KotlinExposedTableGenerator ` | ` <Entity>Table.kt ` — Exposed ` Table ` object with PK + FK + ` @storage ` columns | entities with ` source.rdb ` |
5878| ` KotlinRelationsGenerator ` | ` <Entity>Relations.kt ` — extension fns for ` cardinality=many ` query helpers | entities with to-many relationships |
5979| ` KotlinPayloadGenerator ` | ` <Template>Payload.kt ` — ` @Serializable ` payload from ` @payloadRef ` view-object | every ` template.prompt ` / ` template.output ` |
@@ -139,7 +159,6 @@ emits:
139159
140160``` kotlin
141161// generated/acme/blog/Author.kt
142- @Serializable
143162data class Author (
144163 val id : Long ,
145164 val name : String ,
0 commit comments