兼容 Postgres、MySQL、HSQL 的字节数组类型
Posted
技术标签:
【中文标题】兼容 Postgres、MySQL、HSQL 的字节数组类型【英文标题】:Compatible type of bytearray for Postgres, MySQL, HSQL 【发布时间】:2021-12-30 10:27:14 【问题描述】:我有一个如下所示的列:
@Column(name = "somedata", columnDefinition = "bytea")
@Size(min = 1, max = 65535)
private byte[] somedata;
这个bytea
列定义适用于 PostgreSQL,但出于测试目的,我使用不支持它的 HSQL,除非我将其重命名为 blob
。我想使用 mysql 作为第二个数据源,它也不支持提到的 HSQL 数据类型。
所以我的问题是字节数组类型是否有一个通用的解决方案可以同时适用于这三个数据源?
【问题讨论】:
这能回答你的问题吗? proper hibernate annotation for byte[] 我读过这一篇,但对我没有用 HSQLDB 支持标准 SQL 类型名称 VARBINARY 【参考方案1】:我已经设法通过这种方式使其适用于这三个数据库:
现在的类型是:
-
HSQL 块
PostgreSQL-bytea
MySQL-mediumblob
@Column(name = "somedata", length = 5 * 1024 * 1024)
@Size(min = 1, max = 65535)
@Type(type="org.hibernate.type.BinaryType")
@Lob
private byte[] somedata;
【讨论】:
以上是关于兼容 Postgres、MySQL、HSQL 的字节数组类型的主要内容,如果未能解决你的问题,请参考以下文章