如何使用注释添加外键约束
How to add a foreign key constraint with the annotations
我有 2 个实体 ParentEntity
和 ChildEntity
,其中 ChildEntity
引用 ParentEntity
。这是一个多(子)对一(父)关系,定义如下:
@MappedEntity
public record ChildEntity (
@Id Long id,
String name,
@Relation(Kind.MANY_TO_ONE) ParentEntity parent) {
}
和
@MappedEntity
public record ParentEntity (@Id Long id,
String name) {
}
Micronaut Data 在创建模式时执行以下 SQL 查询:
CREATE TABLE parent_entity
(id
BIGINT NOT NULL,name
VARCHAR(255)
NOT NULL);
CREATE TABLE child_entity
(id
BIGINT NOT NULL,name
VARCHAR(255) NOT NULL,parent_id
BIGINT NOT NULL);
我期望(或希望)添加外键约束以强制执行参照完整性,因此 parent_id
必须始终具有值 parentEntity.id
如何在 MappedEntity 类(ChildEntity、ParentEntity 等)上执行此操作,同时仍使用 Micronaut 数据 JDBC? (没有 Hibernate 或 JPA 等)
您需要使用 flyway 等数据库迁移工具来创建合适的表。
我有 2 个实体 ParentEntity
和 ChildEntity
,其中 ChildEntity
引用 ParentEntity
。这是一个多(子)对一(父)关系,定义如下:
@MappedEntity
public record ChildEntity (
@Id Long id,
String name,
@Relation(Kind.MANY_TO_ONE) ParentEntity parent) {
}
和
@MappedEntity
public record ParentEntity (@Id Long id,
String name) {
}
Micronaut Data 在创建模式时执行以下 SQL 查询:
CREATE TABLE
parent_entity
(id
BIGINT NOT NULL,name
VARCHAR(255) NOT NULL);
CREATE TABLE
child_entity
(id
BIGINT NOT NULL,name
VARCHAR(255) NOT NULL,parent_id
BIGINT NOT NULL);
我期望(或希望)添加外键约束以强制执行参照完整性,因此 parent_id
必须始终具有值 parentEntity.id
如何在 MappedEntity 类(ChildEntity、ParentEntity 等)上执行此操作,同时仍使用 Micronaut 数据 JDBC? (没有 Hibernate 或 JPA 等)
您需要使用 flyway 等数据库迁移工具来创建合适的表。