如何定义连接表继承策略的外键名称?

时间:2016-02-22 14:43:46

标签: hibernate jpa hsqldb hibernate-4.x

我正在使用hibernate工具(版本4.3)中的hbm2ddl来生成我的ddl脚本。外键的名称是生成的,例如, FK_14n63malgiroxq6j6efy53skl

有没有办法定义名称,例如FK_DOMAIN_EVENT_ID?我尝试使用@PrimaryKeyJoinColumn@ForeignKey,但没有成功。

这是基础实体:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class DomainEvent {

    @Id
    private UUID id;

    private Calendar occuredOn;
}

这里是扩展类:

@Entity
@PrimaryKeyJoinColumn(foreignKey = @ForeignKey(name = "FK_DOMAIN_EVENT_ID"))
public class OrderSubmittedEvent extends DomainEvent {

    private String orderId;

}

此处生成的输出包含生成的外键FK_14n63malgiroxq6j6efy53skl

create table domain_event (
    id binary(255) not null,
    occured_on timestamp,
    primary key (id)
);

create table order_submitted_event (
    order_id varchar(255),
    id binary(255) not null,
    primary key (id)
);

alter table order_submitted_event 
    add constraint FK_14n63malgiroxq6j6efy53skl 
    foreign key (id) 
    references domain_event;

0 个答案:

没有答案