Spring 3.2、Hibernate 4.2 アプリケーションがあります。
私たちのアプリケーションには、基本的にあらゆる種類のファイルをアップロードできるアップロード モジュールがあります。ファイルをアップロードすると、データベース エントリも生成されます。
id, directory, filename, mimeType, userId
したがって、基本的に、アプリケーションのどこからでもファイルをアップロードできるはずです。また、可能性のあるすべてのエンティティに対して新しい UploadEntity が必要なわけではありません。そこで、アップロードにある種の一般的なテーブルを使用することを考えました。
id, directory, filename, mimeType, userId, FOREIGN_KEY
もちろん問題は、JPA でこの外部キーの具体的なデータ型を設定できないことです。これは、エンティティ A、B、C、または ... を指す可能性があるためですUUID
。 2 つのソリューション:
- 単純
foreignKey
なタイプUUID
を作成し、常に外部エンティティの ID を保存します。 - 注釈を付けて
foreignKey
of 型Object
を@ManyToOne
作成しますが、もちろんそのためのターゲット エンティティを提供することはできません。
しかし、これにはもっと優れた/より簡単な解決策があるかもしれません。どう思いますか?
私たちが使用する各エンティティは を実装することを忘れていましたが、Persistable<UUID>
このインターフェイスを外部キーの型として使用することは可能ですか?
ところで:からの参照を使用する必要はありませんUploadedItem -> SomeEntity
。もう一方の方法だけが必要です: SomeEntity -> UploadedItem
.