实体管理器合并方法更新blob字段

时间:2010-08-04 09:37:14

标签: java orm jsf jpa

public void uploadFile(ActionEvent evt)throws Exception{
InputFile inputFile=(InputFile)evt.getSource();
    byteArrayOutputStream=new ByteArrayOutputStream();
    ObjectOutputStream objectOutputStream=new ObjectOutputStream(byteArrayOutputStream);
    objectOutputStream.writeObject(inputFile.getFile());

    reportTemplate.setTemplatePath(inputFile.getFilename());
reportTemplate.setTemplateData(Hibernate.createBlob(byteArrayOutputStream.toByteArray()));
        this.reportTemplate=  reportFacadeLocal.createReportTemplate(reportTemplate);

} 我使用EJB 3.0并使用EntityManager类的persist方法在数据库中创建条目。 如果我只解释代码而不是reportTemplate是实体bean实例,那么实体bean的templateData字段的类型为blob.Code,上面描述的工作正常,并在数据库中创建条目。

更新记录除了blob字段之外的所有字段时出现

问题。我使用EntityManager合并方法来更新记录。

1 个答案:

答案 0 :(得分:1)

尝试使用entityManager.createNativequery(SomeQuery)或使用entityManager.createNamedQuery(SomeQuery),而不是直接使用entityManager.merge(Object)方法进行更新。