在JPA中处理通用外键有什么好方法?

时间:2013-07-20 16:58:31

标签: spring hibernate generics jpa foreign-keys

我们有一个Spring 3.2,Hibernate 4.2应用程序。

我们的应用程序有一个上传模块,您可以在其中基本上传各种文件。文件上载还会生成数据库条目:

id, directory, filename, mimeType, userId

所以基本上应该可以从应用程序的任何地方上传文件。我们不希望每个可能的实体都有新的UploadEntity。所以我们考虑使用某种通用表进行上传:

id, directory, filename, mimeType, userId, FOREIGN_KEY

问题当然是,我们无法在JPA中为此外键设置具体的数据类型,因为它可以指向实体A或B或C或......我们使用UUID作为键在我们的应用程序中,我们考虑了两个解决方案:

  1. 只需foreignKey类型UUID,并始终保存外国实体的ID。
  2. 使用foreignKey注释创建Object类型的@ManyToOne,但当然我们无法为此提供目标实体。
  3. 但也许还有其他一些更好/更容易的解决方案。你觉得怎么样?


    我忘了告诉你,我们使用的每个实体都实现Persistable<UUID>,那么是否可以将此接口用作外键的类型?

    顺便说一下:我们需要从不来使用UploadedItem -> SomeEntity的引用。我们只需要另一种方式:SomeEntity -> UploadedItem

0 个答案:

没有答案