继承映射

时间:2014-05-14 22:58:55

标签: java-ee jpa

我必须使用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的书。

如何管理这个层次结构。请帮助我,非常感谢

0 个答案:

没有答案