Java 外键休眠

Java 外键休眠,java,hibernate,db2,Java,Hibernate,Db2,Hibernate有一个问题,我想创建一个与另一个表相关的表,但是当我生成它时,外键是错误的 Hibernate可能有bug吗 下面是我用来生成外键的代码: @Id @JsonProperty("account") @OneToOne @JoinColumns({ @JoinColumn( name = "ACCOUNTCODE_K", referencedColumnName = "CODE_K"/*, insertable = false, updat

Hibernate有一个问题,我想创建一个与另一个表相关的表,但是当我生成它时,外键是错误的

Hibernate可能有bug吗

下面是我用来生成外键的代码:

@Id
@JsonProperty("account")
@OneToOne
@JoinColumns({
    @JoinColumn(
        name = "ACCOUNTCODE_K",
        referencedColumnName = "CODE_K"/*, insertable = false, updatable = false*/),
    @JoinColumn(
        name = "INVOICEDEBTOR_K",
        referencedColumnName = "INVOICEDEBTOR_K"/*, insertable = false, updatable = false*/)
})
@javax.validation.constraints.NotNull(message="El campo no puede ser nulo")
private Account account;
以下是在数据库中生成的DDL:

ALTER TABLE "INVOICES"."ACCOUNTBIEN_T" 
ADD CONSTRAINT "FKSWGAGEC55PBL7KIHFE19FWBLO" FOREIGN KEY
    ("ACCOUNTCODE_K",
     "INVOICEDEBTOR_K")
REFERENCES "INVOICES"."ACCOUNT_T"
    ("INVOICEDEBTOR_K",
     "CODE_K")
ON DELETE NO ACTION
ON UPDATE NO ACTION
ENFORCED
ENABLE QUERY OPTIMIZATION ;
您可以看到ACCOUNTCODE_K引用INVOICEDEBTOR_K,而它将是另一个INVOICEDEBTOR_K的引用代码_K和INVOICEDEBTOR_K


谢谢您的帮助。

您自己检查过数据库了吗?我想这只是信息,顺序可能不正确,但参考键应该是正确的。期待你的检查结果。是的,我检查了数据库,foring键是错误的。何塞:有一件事,这应该是@ManyToOne对吗?或者它真的是OneToOne?还有,你使用的是哪个版本的Hibernate/JPA?我们需要关系是OneToOne,我们使用Hibernate的版本5.2.17。最后你自己检查过数据库了吗?我想这只是信息,顺序可能不正确,但参考键应该是正确的。期待你的检查结果。是的,我检查了数据库,foring键是错误的。何塞:一件事,这应该是@ManyToOne对吗?或者它真的是OneToOne?还有,你使用的是哪个版本的Hibernate/JPA?我们需要关系是OneToOne,我们使用Hibernate的版本5.2.17.Final