Postgres JsonBinaryType не работает при обновлении до SpringBoot версии 3.1.5
У меня есть проект SpringBoot, который сохраняет данные в столбце Postgres JsonB. Итак, я использую аннотацию @TypeDef в классе сущности, но после обновления до SpringBoot версии 3.1.5 эта аннотация больше не доступна.
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.annotations.Type;
//import org.hibernate.type.SqlTypes;
import org.json.simple.JSONObject;
@Entity
@Table(name = "myTable")
@TypeDef(name = "jsonb", typeClass = JsonBinaryType::class) // Typedef is not available
data class MyEntity(
@Id
@Column(unique = true, nullable = false, updatable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID id;
@Type(type = "jsonb")
@Column(nullable = true)
private JSONObject objConfig;
)
Я пробовал использовать @JdbcTypeCode(SqlTypes.JSON) вместо @Type, но во время выполнения я получаю
Could not write JSON: Can't resolve required map value type for class org.json.simple.JSONObject
Я тоже попробовал hibernate-core 6.1.6.Final
1 ответ
Я решил это так: Использование карты вместо JSON OBject.
import com.fasterxml.jackson.annotation.JsonProperty;
import io.hypersistence.utils.hibernate.type.json.JsonType;
@JsonProperty
@Type(JsonType.class)
@Column(columnDefinition = "jsonb")
private Map<String, Object> config;