У меня проблема со столбцом json, когда необходимо переключиться с PostgreSQL на MariaDB / MySql.
Я использую Spring Boot + JPA + Hibernate + hibernate-types-52.
Таблица, которую я хочу отобразить, выглядит следующим образом:
CREATE TABLE atable(
...
acolumn JSON,
...
);
Хорошо, это работает для PostgreSQL и MariaDB / MySql.
Проблема в том, когда я хочу развернуть приложение, которое легко переключается с одного на другое, потому что правильная реализация hibernate-types-52 для PostgreSQL и MySQL / MariaDB отличается
Это работает на MySQL / MariaDB
@Entity
@Table(name = "atable")
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class Atable {
...
@Type(type = "json")
@Column(name = "acolumn", columnDefinition = "json")
private JsonNode acolumn;
...
}
Это работает для Posgre SQL
@Entity
@Table(name = "atable")
@TypeDef(name = "json", typeClass = JsonBinaryType.class)
public class Atable {
...
@Type(type = "json")
@Column(name = "acolumn", columnDefinition = "json")
private JsonNode acolumn;
...
}
Любые решения для перехода с JsonBinaryType на JsonStringType (или любое другое решение для решения этой проблемы) приветствуются.