java - 将 byte[] 与 hibernate 保存到 postgreSQL

标签 java hibernate postgresql

目前,在数据库中我有下表(PostgreSQL 9.2):

                        jackpot_image

     id       jackpot_id         mime_type        image_data
   serial      integer          varchar(32)         bytea

我有以下实体:

@Entity
@Table(name = "jackpot_image")
public class JackpotImage {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;

    @Column(name="jackpot_id")
    private int jackpotId;

    @Column(name="mime_type")
    private String mimeType;

    @Column(name="image_data")
    private byte[] imageData;

    //GET, SET

}

以及以下 DAO:

public class JackpotImageDao {

    public JackpotImage selectImage(int imageId){
        String hql = "FROM JackpotImage WHERE id = :imageId";
        Query query = getSession().createQuery(hql);
        query.setInteger("imageId", imageId);
        return (JackpotImage) query.uniqueResult();
    }

    public void save(JackpotImage image){
        getSession().saveOrUpdate(image);
    }
}

问题是当我尝试保存然后检索图像时,我得到了不同的字节数组。

JackpotImage image;
JackpotImageDao imageDao;
//Getting image and ImageDAO
imageDao.save(image);
JackpotImage img = imageDao.selectImage(image.getId());

现在,image 的二进制数据不同于 img 的二进制数据。为什么?我该如何解决?

最佳答案

在字段 imageData 中添加注解 @Lob

关于java - 将 byte[] 与 hibernate 保存到 postgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29432104/

相关文章:

java - org/apache/commons/math3/linear/MatrixUtils 中的 JNIEnv->getMethodID for createRealMatrix(double [][] data)

java - hibernate 按计数排序连接表并返回 pojo 列表

java - spring jdbctemplate和Hibernate的区别

database - 如何在 Postgres 8.2 中打开 SQL 日志记录?

java - 迁移ehcache :proxy to spring 4

java - 如何使用自定义字体/书法更改 tabLayout 的字体

hibernate - Session中save、update、saveOrUpdate、merge方法的区别?

postgresql - 使用 order by 时真正长时间运行的查询

Docker libpq5 依赖问题中的 PHP 和 Postgresql

java - 类型安全: Unchecked cast leads to java. lang.ClassCastException