Использование jsonb в Hibernate 6
1 мин чтения
В Hibernate 6 был реализован маппинг JSON. Всё, что теперь требуется — над полем со своей сущностью проставить аннотацию @JdbcTypeCode и установить тип SqlTypes.JSON.
Пример с полем типа Map:
class Example {
@JdbcTypeCode(SqlTypes.JSON)
private Map<String, String> payload;
}
Пример с своими классами — SomeEntity с полем типа SomeJson:
//file SomeEntity.java
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.GeneratedValue;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.type.SqlTypes;
import lombok.Data;
@Data
@Entity
public class SomeEntity {
@Id
@GeneratedValue
private Long id;
@JdbcTypeCode(SqlTypes.JSON)
private SomeJson jsonField;
}
//file SomeJson.java
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SomeJson implements Serializable {
private Long longValue;
private String stringValue;
private Map<String, String> customValues;
}
upd:
На habr вышла статья про это, для более ранних версий рекомендуют ознакомиться с библиотекой hibernate-types.
Похожие записи
3 мин чтения
@Transactional
Разбор аннотации @Transactional в Spring: транзакции, уровни изолированности ACID, феномены грязного чтения и фантомов, механизм Proxy.
1 мин чтения
Gradle & Maven
Анализ перехода с Maven на Gradle: преимущества, подводные камни с кастомными плагинами и итоги.
1 мин чтения
Restore Database Dumps for Postgres in Docker Container
Пошаговая инструкция: как скопировать дамп PostgreSQL внутрь Docker-контейнера и развернуть его через pg_restore.