java - JPA中带有@Lob注解的数据记录是什么类型?

标签 java hibernate jpa lob

我有一个问题,当我在银行内录制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/

相关文章:

java - Hibernate 中的一对一共享主键映射可以是可选/空吗?

java - @JoinTable是否有属性 "table"?

java - Querydsl native jpa查询返回实体而不是对象数组

java - Spring Data JPA,如何通过Pageable获取最后一页

java - Hibernate级联保存

java - 捕获并重新抛出完全相同的异常有什么意义吗?

java - 按空格拆分字符串,Java

mysql - 在 PrimeFaces 数据表中显示 Blob 值?

java - 在 Tapestry Web 应用程序中处理域异常的最佳方法是什么?

java - Spring boot Multi-Tenancy 代码,具有隔离的客户端特定隔离