java - 如何使 BLOB 在 Oracle 和 PostgreSQL 上工作?

标签 java oracle postgresql hibernate jpa

我有实体 BLOB柱子:

@Lob
@Column(name = "SRC")
private byte[] src;
我的应用程序使用两个数据库,Oracle 和 PostgreSQL。当我用上面写的 Oracle 启动应用程序时,一切正常,但是当我用 PostgreSQL 启动时,出现错误:
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [src] in table [catalogs]; found [bytea (Types#BINARY)], but expecting [oid (Types#BLOB)]
之后我在谷歌阅读文章和建议并修复它:
@Lob
@Type(type="org.hibernate.type.BinaryType")
@Column(name = "SRC")
private byte[] src;
现在它在 PostgreSQL 上运行良好,但在 Oracle 中我得到了异常:
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [src] in table [catalogs]; found [blob (Types#BLOB)], but expecting [raw(255) (Types#VARBINARY)]
我应该怎么做才能使它在两个数据库上都能正常工作?
附言我和 CLOB 有类似的问题

最佳答案

不幸的是, hibernate 实体是特定于数据库提供程序的。

关于java - 如何使 BLOB 在 Oracle 和 PostgreSQL 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52968473/

相关文章:

Oracle/SQL : Check If Trigger Enabled/Disabled

sql - Oracle:使用正则表达式从查询中排除结果

sql - 如何将 .sql 文件的内容读入 R 脚本以运行查询?

postgresql - Bytea 到 postgresql 中的实际文本值

java - 无法将字符串写入 FileWriter/BufferedWriter

sql - 每 30 秒运行一次 oracle 查询 (SQL),一旦计数等于 8,它应该继续进行并完成工作

java - 如何返回泛型类型的类

sql - 抑制 "duplicate key value violates unique constraint"错误

java - 如何从udp数据包中读取1位

java - 网络信息反射