如何在 Hibernate 中创建具有单向关系的 table?

How to create table with unidirectional relation in Hibernate?

我在 mysql 中有空数据库和两个 java 实体。其中之一具有单向关系。当休眠尝试创建表时,出现错误:

Error executing DDL "alter table entry add constraint FK6ov2k83sx3crs9v3q8nvjuf1j foreign key (category_name) references category (name)" via JDBC Statement

有我的实体:

@Entity
public class Entry {
    @Id
    @GeneratedValue( strategy = GenerationType.IDENTITY)
    private int id;

    @Column
    private String myfio;

    private String descr;

    @OneToOne(cascade = CascadeType.ALL)
    private Category category;
}

第二个:

@Entity
@Table(name="category")
public class Category {
    @Id
    @Column
    private String name;
}

如何创建不出错的表?

一对一关系共享同一个id。所以它应该是相同的类型,但第一个是 int (实际上它应该是 Integer 允许瞬态的空值(不存储) 实体),第二个是字符串。看来您只是错过了一行。此外,值得一提的是 Vlad Mihalchea 的文章 https://vladmihalcea.com/the-best-way-to-map-a-onetoone-relationship-with-jpa-and-hibernate/