S.
11/25/2023, 8:06 PMS.
11/25/2023, 8:12 PMToshihiro Nakamura
11/26/2023, 7:18 AMorg.komapper.codegen.PropertyTypeResolver
.
Below is an example of a build.gradle.kts that specifies a UUID for the ID property using PropertyTypeResolver
.
komapper {
generators {
val basePackage = "org.komapper.example"
register("postgresql") {
jdbc {
val initScript = file("src/main/resources/init_postgresql.sql")
driver.set("org.testcontainers.jdbc.ContainerDatabaseDriver")
url.set("jdbc:tc:postgresql:13.3:///test?TC_INITSCRIPT=file:${initScript.absolutePath}")
user.set("test")
password.set("test")
}
packageName.set("$basePackage.postgres")
overwriteEntities.set(true)
overwriteDefinitions.set(true)
val defaultResolver = propertyTypeResolver.get()
val newResolver = object : PropertyTypeResolver by defaultResolver {
override fun resolve(table: Table, column: Column): String {
if (column.name.lowercase() == "id" || column.name.lowercase().endsWith("_id")) {
return "java.util.UUID"
}
return defaultResolver.resolve(table, column)
}
}
propertyTypeResolver.set(newResolver)
}
}
}
S.
11/26/2023, 12:17 PM