我有一个问题,当我在银行内录制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 类型的方言映射:-4
最佳答案
@Lob
@Basic(fetch=FetchType.EAGER)
@Column(name="arqdocumento")
private byte[] arquivo;
是在数据库中存储大量数据的正确方法。您的错误表明您必须将方言包含在 persistence.xml 文件中。因此,请验证您是否输入了正确的方言属性。
关于java - JPA中带有@Lob注解的数据记录是什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078078/