我必须使用JPA进行Web应用程序,我对数据库的设计和使用hibernate的映射有一些疑问。
我做了一个简单的例子来解释我的问题,我们有实体项继承自实体项,我们可以让其他类继承自项Class.and我们有类order_line如何与item类关系,我们在order_line类
中有外键我的2个词就是这样:
@Entity
public class Book extends item implements Serializable{
@Column(nullable = false)
@NotNull
private String isbn;
@Column(nullable = false)
@NotNull
private String language;
}
和超级班:
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class item implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false)
@NotNull
private String title;
@Column(nullable = false)
@NotNull
private Integer price;
}
和第三个类order_line:
@Entity
public class order_line implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false)
private Integer quantity;
@OneToOne
@JoinColumn(name = "item_fk", nullable = false)
private Item item;
}
使用这个简单的代码,我们确实在Order_line表中有fk。但问题是这个外键是用于item表或book表。 因为我在数据库中做了一个例子,我有一个id为1的项目和一个Id = 1的书。
如何管理这个层次结构。请帮助我,非常感谢