如何使用注释添加外键约束

How to add a foreign key constraint with the annotations

我有 2 个实体 ParentEntityChildEntity,其中 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 等数据库迁移工具来创建合适的表。