我有一个问题,当我在银行内录制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:没有JDBC类型的Dialect映射:-4
答案 0 :(得分:2)
@Lob
@Basic(fetch=FetchType.EAGER)
@Column(name="arqdocumento")
private byte[] arquivo;
是将大量数据存储在数据库中的正确方法。您的错误说您必须在diaistence.xml文件中包含Dialect。因此,请确认您输入了正确的Dialect属性。
答案 1 :(得分:0)
使用字节数组,或InputStream或SQL blob类型。您无法将blob列映射到文件。