У меня есть класс сущности, в котором поле объявлено как:
@NotNull
@Lob
private String xmlString;
Теперь мне нужно поддерживать совместимость как с Oracle, так и PostgreSQL. Соответствующие определения столбца в DDL: xmlString clob
и xmlString text
. Приложение работает хорошо, и только в одной проблеме с PostgreSQL значение, хранящееся в столбце xmlString
, имеет тип длинный объект вместо исходной xml строки.
Как предлагается здесь , чтобы добавить @Type(type="org.hibernate.type.MaterializedClobType")
, что обеспечивает совместимость с Oracle и PostgreSQL, но даже после добавления этой аннотации значение сохраняется в PostgreSQL - это длинный объект вместо исходной xml строки.
Внесенные мной изменения:
@NotNull
@Lob
@org.hibernate.annotations.Type(type = "org.hibernate.type.MaterializedClobType")
private String xmlMessage;
и значение хранится в xmlString
- это число, которое кажется ссылочным идентификатором длинного объекта .
Есть ли возможность сделать эту работу на обоих Oracle и PostgreSQL?
Он хорошо работает в PostgreSQL, если я изменяю аннотацию на @org.hibernate.annotations.Type(type = "org.hibernate.type.TextType")
, но тогда возникает ошибка проверки схемы на Oracle.