我创建了一个名为Image
的实体。它包含我保存在数据库中的图像元数据等。目前,我在one-to-many
和Question
之间存在Image
关系。所以我在问题实体的图像列表中声明了@OneToMany
和@JoinColumn
注释。这意味着在我的情况下,图像表中有一个名为question_id
的外键。
我也想在其他关系中使用这个实体。 User
可能有图片,等等。但是,这意味着我在图像表中也需要user_id
列。随着这种增长,这似乎是一种糟糕的方法。
我该怎么做?我是否需要使用继承并创建QuestionImage
,UserImage
等子类?
还有其他更好(更简单的方法)吗?
答案 0 :(得分:1)
不要定义JoinColumn。一对多单向关联的默认值是使用JoinTable(正是由于这个原因)。
如果您未指定@OneToMany(...)
以外的任何内容,则将使用JoinTable。您当然可以使用@JoinTable
注释自定义其名称及其列名。