如何解决Micronaut-data 复合键:无法为实体 [Round] 的属性 [id] 创建表列,数据类型未知:ENTITY
我正在尝试为我的 Round 实体创建一个复合键。关键应该是游戏(如果相关,它的 id 类型是 UUID)(因为我需要从回合到游戏的关系)和一个正常的长度(以区分同一游戏拥有的回合)。
我遵循了 Embeddable 类的文档,但我一直遇到错误,如下所示。
@Entity
data class Game(
@Id
@AutoPopulated
var id: UUID = UUID.randomUUID(),@DateCreated
@Column(name = "created_timestamp")
var createdTimestamp: Instant,@DateUpdated
@Column(name="update_timestamp")
var updateTimestamp: Instant,@OneToMany
var rounds: List<Round>,)
@Entity
data class Round(
@EmbeddedId
var id: RoundId,)
@Embeddable
data class RoundId(
@OneToOne
@Column(name="game_id")
val gameId: Game,@GeneratedValue
@Column(name="round_id")
val roundId: Long
)
我收到以下错误
backend_1 | [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [io.micronaut.data.jdbc.config.SchemaGenerator] could not be loaded: Error instantiating bean of type [io.micronaut.data.jdbc.config.SchemaGenerator]: Unable to create table column for property [id] of entity [com.andreas.Round] with unknown data type: ENTITY
backend_1 | io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [io.micronaut.data.jdbc.config.SchemaGenerator] could not be loaded: Error instantiating bean of type [io.micronaut.data.jdbc.config.SchemaGenerator]: Unable to create table column for property [id] of entity [com.andreas.Round] with unknown data type: ENTITY
backend_1 | Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [io.micronaut.data.jdbc.config.SchemaGenerator]: Unable to create table column for property [id] of entity [com.andreas.Round] with unknown data type: ENTITY
backend_1 | Caused by: io.micronaut.data.exceptions.MappingException: Unable to create table column for property [id] of entity [com.andreas.Round] with unknown data type: ENTITY
我正在使用具有以下依赖项和数据源的 JDBC 和 postgres。这一切都在 docker (gradle:6.8.3-jdk11) 中运行,kotlin 1.4.31。
datasources:
default:
url: ${JDBC_URL}
driverClassName: org.postgresql.Driver
username: ${DB_USER}
password: ${DB_PASSWORD}
schema-generate: CREATE_DROP
dependencies {
kapt("io.micronaut.openapi:micronaut-openapi")
kapt("io.micronaut.security:micronaut-security-annotations")
kapt("io.micronaut.data:micronaut-data-processor")
kapt("io.micronaut:micronaut-inject-java")
kapt("io.micronaut:micronaut-validation")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.1.0")
implementation("io.micronaut:micronaut-validation")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
implementation("io.micronaut.kotlin:micronaut-kotlin-runtime")
implementation("io.micronaut:micronaut-runtime")
implementation("io.micronaut:micronaut-http-client")
implementation("io.micronaut:micronaut-session")
implementation("io.swagger.core.v3:swagger-annotations")
compileOnly("jakarta.persistence:jakarta.persistence-api:2.2.2")
implementation("javax.annotation:javax.annotation-api")
implementation("io.micronaut.data:micronaut-data-jdbc")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
implementation("io.micronaut.security:micronaut-security-jwt")
implementation("io.micronaut.kotlin:micronaut-kotlin-extension-functions")
runtimeOnly("ch.qos.logback:logback-classic")
runtimeOnly("com.fasterxml.jackson.module:jackson-module-kotlin")
runtimeOnly("org.postgresql:postgresql")
testImplementation("org.testcontainers:testcontainers")
testImplementation("org.testcontainers:postgresql")
}
可能是什么问题?
编辑: 似乎是一个尚未完全支持的问题。似乎正在处理中 (https://github.com/micronaut-projects/micronaut-data/pull/930)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。