如何在 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/
我在 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/