如何将实体与多个实体相关联?

时间:2017-11-21 11:39:35

标签: hibernate jpa

我是JPA的新手,也许我以错误的方式思考这个问题?我想创建一个Attachment实体,允许我将附件上传到多个实体。目前我已经在我的产品类中建立了OneToMany关系...

@OneToMany(
    mappedBy="product",
    fetch=FetchType.LAZY,
    cascade=CascadeType.ALL)
@IndexedEmbedded
private Set<Attachment> attachment;

在我的附件课程中,我已经建立了关系的另一面。

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PRODUCT_ID", nullable = false) 
private Product product;

这一切都运行正常但我想在公司实体和需要相关附件的任何实体中使用相同的代码。我发现的问题是我必须将Attachments类绑定到Product。如何在多个类中使用相同的代码?我想过一个超类,但发现它必须用@Entity注释,否则它不会起作用。这是泛型可以做的吗?我只是没有足够的经验知道如何让它发挥作用。

更新:

在阅读Clijsters评论后,我尝试在没有ManyToOne连接的情况下修改附件类,并且它工作得很好,但提出了另一个问题。我最终希望拥有一个共享附件资源库。我们的想法是将文件上传到产品,并能够与其他产品或公司共享该附件。 如何查看附件所连接的所有产品或公司?这对于查看与附件相关联的内容以及它是否仍在使用或是否可以删除非常有用。

0 个答案:

没有答案