2

問題があります。バンク内に PDF ファイルを記録している場合、ファイルまたはバイト [] として保存した方がよいですか?

@Lob @Basic(fetch=FetchType.EAGER)
@Column(name="arqdocumento")
private File arquivo; 

また

@Lob
@Basic(fetch=FetchType.EAGER)
@Column(name="arqdocumento")
private byte[] arquivo; 

このファイルをデータベースから取得してブラウザに表示するにはどうすればよいですか?

なぜ私はこのようにするのだろうか:

public File getDocumentoBinary(int iDdocumento){
   Query consulta = getSesseion().createSQLQuery("SELECT arqdocumento FROM documento WHERE iddocumento = :id");
   consulta.setInteger("id", iDdocumento);
   return  (File) consulta.uniqueResult();     }

しかし、このエラーが表示されます:

原因: org.hibernate.MappingException: No Dialect mapping for JDBC type: -4

4

2 に答える 2

2
@Lob
@Basic(fetch=FetchType.EAGER)  
@Column(name="arqdocumento")  
private byte[] arquivo;  

膨大な量のデータを DB に格納するための正しいアプローチです。あなたのエラーは、方言をpersistence.xmlファイルに含める必要があることを示しています。したがって、正しい Dialect プロパティを入力したことを確認してください。

于 2012-12-29T11:57:40.110 に答える
0

バイト配列、InputStream、または SQL BLOB 型を使用します。BLOB 列をファイルにマップすることはできません。

于 2012-12-29T03:00:32.483 に答える