java - 将多部分文件插入数据库

标签 java spring hibernate jpa multipart

我正在尝试借助以下代码更新 Oracle 数据库中的文件

@RequestMapping(value = "/person/{personId}", method = RequestMethod.POST)
    public @ResponseBody String save(@RequestParam MultipartFile files,@PathVariable int personId,) throws IOException {

        byte [] bFile =files.getBytes();
        personService.uploadImageOnId(personId,bFile);
}

这是ServiceImpl

@Override
public void uploadImageOnId(int personId,byte [] personImage) {
        entityManager.createNamedQuery("Person.uploadImageOnId")
                .setParameter("personId", personId).setParameter("personImage", personImage)
                .executeUpdate();

    }

实体

@Entity
@Table(name = "PERSON")
@NamedQueries({ 
@NamedQuery(name = "Person.uploadImageOnId", query = "UPDATE Person p SET p.personImage= :personImage WHERE p.personId= :personId" )

})
public class Person implements java.io.Serializable {
    @Column(name="PERSON_IMAGE")
        @Lob
        private byte[] personImage;

        public byte[] getPersonImage() {
            return personImage;
        }

        public void setPersonImage(byte[] personImage) {
            this.personImage = personImage;
        }
}

但出现以下错误

java.lang.ClassCastException: [B cannot be cast to [Ljava.lang.Object;

请指出我做错的地方。

最佳答案

引用Inserting byte[] array as blob in Oracle Database getting ORA-01460: unimplemented or unreasonable conversion requested ,我建议不要将字节数组设置为值,而是将数组包装为 ByteArrayInputStream

关于java - 将多部分文件插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21795895/

相关文章:

java - 数据库连接匮乏

java - Spring 值 : incorrect shows fields

hibernate - 带有 PostgreSQL 的 Grails 不生成表

java - 如何使用 Hibernate 的 addScalar() 方法返回枚举

java - Spring Boot Api 休息 SSL

java - JDK9 : An illegal reflective access operation has occurred. org.python.core.PySystemState

spring - 如何从 Controller 访问片段中的片段?

java - spring boot中使用hibernate拦截器的问题

java - Artifact 解析的 m2eclipse 问题 - 建议 Eclipse 的另一个 Maven 插件?

java - 如何更改不同类的字符串数组的值?