适用于 Postgres、MySQL、HSQL 的字节数组兼容类型

Compatible type of bytearray for Postgres, MySQL, HSQL

我有一个看起来像这样的专栏:

@Column(name = "somedata", columnDefinition = "bytea")
@Size(min = 1, max = 65535)
private byte[] somedata;

bytea 列定义适用于 PostgreSQL,但出于测试目的,我使用不支持它的 HSQL,前提是我将其重命名为 blob。我想将 MySQL 用于第二个数据源,它也不支持提到的 HSQL 数据类型。

所以我的问题是,是否有一个适用于这三个数据源的字节数组类型的通用解决方案?

我已经设法通过这种方式让它适用于这三个数据库:

现在的类型是:

  1. HSQL-blob
  2. PostgreSQL-bytea
  3. MySQL-mediumblob
@Column(name = "somedata", length = 5 * 1024 * 1024)
@Size(min = 1, max = 65535)
@Type(type="org.hibernate.type.BinaryType")
@Lob
private byte[] somedata;