JPAを使用してアップロードされたファイルをデータベースに永続化しようとしています。(私にとって)最も「自然な」方法は、ドメインオブジェクトを次のように定義することです。
@Entity
class UploadFile {
...
public CommonsMultipartFile getFileData()
{
return fileData;
}
}
しかし、そのようなデータベースマッピングタイプがないため、これは機能しません。オンラインで検索すると、人々は次の2つの方法のいずれかを採用しているようです。
- フィールドを次のように定義します
java.sql.blob;
- フィールドを次のように定義します
byte[]
クラスでは、にアクセスしてストリームに戻すために@Controller
、着信HttpServletRequest
がキャストされます。MultipartHttpServletRequest
MultipartFile
byte[]
ただし、このスキームでは、「ランダムな」結果が得られ、困惑します。時々、「beanプロパティが読み取れません」というエラーが発生し、byte[]フィールドのgetterメソッドの戻り型が一致しない可能性があります。Bean定義をダブルおよびトリプルチェックしましたが、何も問題は見つかりませんでした。
私の質問は2つあると思います。(1)このコンテキストでこのエラーが発生する理由はありますか?(2)さらに重要なことに、このようにアップロードされたファイルを処理する「推奨される」方法は何ですか?
ありがとう
オリバー