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;
Другие вопросы по тегам