Я видел, что BLOB из Oracle эквивалентен BYTEA в Postgres, но я также видел в Интернете обсуждения, в которых говорилось о том, что диалект учитывает тип OID вместо BYTEA для больших двоичных объектов:
Код: Выделить всё
public class PostgreSQLDialect extends Dialect {
...
@Override
protected String columnType(int sqlTypeCode) {
...
case BLOB:
case CLOB:
case NCLOB:
// use oid as the blob/clob type on Postgres because
// the JDBC driver doesn't allow using bytea/text via
// LOB APIs
return "oid";
// use bytea as the "long" binary type (that there is no
// real VARBINARY type in Postgres, so we always use this)
case BINARY:
case VARBINARY:
case LONG32VARBINARY:
return "bytea";
...
}
}
Кроме того, я видел, что у некоторых людей могут возникать ошибки при использовании BYTEA:
Код: Выделить всё
java.sql.SQLException: ERROR: column "xxxxx"
is of type bytea but expression is of type oid
Код: Выделить всё
@Column(name = "DOCUMENT")
private Blob document;
В этом обсуждении рекомендуется использовать BYTEA, если тип BLOB в Oracle: https://dba.stackexchange.com/questions ... postgresql
Итак, я заблудился. Что мне следует использовать для работы с большими двоичными объектами для типа столбца без проблем с Spring Boot? БАЙТЕА или ОИД? А как правильно удалить блоб, если используется тип OID?
Подробнее здесь: https://stackoverflow.com/questions/798 ... -hibernate
Мобильная версия