gpt4 book ai didi

java - 在 hibernate 中使用 longblob

转载 作者:行者123 更新时间:2023-11-30 09:53:44 25 4
gpt4 key购买 nike

我是 hibernate 世界的新手,我正在使用它来映射存储所有类型文件的表。然而,我收到了一个非常奇怪的错误:

javax.servlet.ServletException: java.lang.ClassCastException: [B cannot be cast to java.sql.Blob

我映射了我的 MySql LONGBLOB 列:<property name="fileData" type="blob" .../><property name="fileData" type="longblog" .../>但两者都不起作用。

我目前正在使用 spring mvc 版本 3.x 最新版本和 tomcant 7(如果有帮助的话)。

编辑:这是我的 POJO 对于 fileObject 的样子:

包 com.kc.models;

公共(public)类文件对象{

private String fileName;
private String type;
private double size;
private byte[] file;
private int id;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public double getSize() {
return size;
}
public void setSize(double size) {
this.size = size;
}
public byte[] getFile() {
return file;
}
public void setFile(byte[] file) {
this.file = file;
}

这是我的 hbm.xml 文件的样子:

<class name="com.kc.models.FileObject" table="FILES">
<id name="id" column="ID">
<generator class="native" />
</id>
<property name="fileName" type="string" column="FILENAME" />
<property name="type" type="string" column="TYPE" />
<property name="size" type="double" column="SIZE" />
<property name="file" type="blob" column="FILE" />
</class>

O 这是 mySql 的打印屏幕:http://img412.imageshack.us/img412/3663/fileobject.jpg

最佳答案

异常消息表明您正在尝试将 byte[](表示为 [B)转换为 java.sql.Blob:

java.lang.ClassCastException: [B cannot be cast to java.sql.Blob

问题似乎是,当您将 POJO 属性文件定义为 byte[] 时,您在 Hibernate 映射中将其映射为 `java.sql.Blob'。

尝试改变 POJO 的属性类型:

package com.kc.models;
public class FileObject {
//...
private java.sql.Blob file;
//...
}

关于java - 在 hibernate 中使用 longblob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3703620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com