1

我们有一个 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. 使用注解制作foreignKeyof 类型,但我们当然不能为此提供目标实体。Object@ManyToOne

但也许还有其他更好/更简单的解决方案。你怎么看?


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

顺便说一句:我们永远不需要使用来自UploadedItem -> SomeEntity. 我们只需要另一种方式:SomeEntity -> UploadedItem.

4

0 回答 0