如何在JPA中的不同关系中使用相同的实体?

时间:2013-08-31 14:45:18

标签: java java-ee jpa

我创建了一个名为Image的实体。它包含我保存在数据库中的图像元数据等。目前,我在one-to-manyQuestion之间存在Image关系。所以我在问题实体的图像列表中声明了@OneToMany@JoinColumn注释。这意味着在我的情况下,图像表中有一个名为question_id的外键。

我也想在其他关系中使用这个实体。 User可能有图片,等等。但是,这意味着我在图像表中也需要user_id列。随着这种增长,这似乎是一种糟糕的方法。

我该怎么做?我是否需要使用继承并创建QuestionImageUserImage等子类?

还有其他更好(更简单的方法)吗?

1 个答案:

答案 0 :(得分:1)

不要定义JoinColumn。一对多单向关联的默认值是使用JoinTable(正是由于这个原因)。

如果您未指定@OneToMany(...)以外的任何内容,则将使用JoinTable。您当然可以使用@JoinTable注释自定义其名称及其列名。