【问题标题】:Part file not getting saved to the database零件文件未保存到数据库
【发布时间】:2016-08-29 08:13:57
【问题描述】:
public String addFile(UploadFileBean uploadFileBean) throws Exception {
SessionFactory sessionFactory = HibernateUtility.createSessionFactory();
    Session session = null;
    session = sessionFactory.openSession();
    session.beginTransaction();
    UploadFileEntity uploadFileEntity = new UploadFileEntity();

    InputStream input = uploadFileBean.getFileData().getInputStream();
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    byte[] buffer = new byte[10240];
    for (int length = 0; (length = input.read(buffer)) > 0;)
        output.write(buffer, 0, length);

    uploadFileEntity.setUploaderId(uploadFileBean.getUploaderId());
    uploadFileEntity.setReviewerId(uploadFileBean.getReviewerId());
    uploadFileEntity.setFileData(output.toByteArray());
    uploadFileEntity.setFileName(uploadFileBean.getFileName());
    uploadFileEntity.setFileStatus("Pending");

    session.persist(uploadFileEntity);
    session.getTransaction().commit();
    session.close();

    return null;
}

这是我用来将零件文件转换为字节并以 BLOB 格式将其保存到数据库中的代码。但是一旦代码完全执行,没有任何东西被保存到数据库中,它显示为空。有人可以建议可能是什么错误吗?

Image of the output

【问题讨论】:

    标签: hibernate blob


    【解决方案1】:

    您的输出未关闭。数据仍在缓存中,需要刷新。

    【讨论】:

    • 怎么做?顺便说一句,除了文件之外,其余数据都保存到数据库中
    • 只需在uploadFileEntity.setFileStatus("Pending");之后添加output.close();
    • 尝试在uploadFileEntity.setReviewerId(uploadFileBean.getReviewerId());后面加output.flush();,如果还是不行,不知道为什么^()^
    猜你喜欢
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 2021-06-05
    • 2017-10-25
    • 1970-01-01
    • 2012-03-27
    • 2020-12-17
    • 1970-01-01
    相关资源
    最近更新 更多