Spring Boot 中如何处理存取 MySQL 中 JSON 类型的字段
在Spring Boot中处理MySQL中JSON类型字段,你可以使用@Type
注解来指定字段的自定义类型处理器。以下是一个使用Jackson
库来处理JSON字段的例子:
首先,添加依赖到你的pom.xml
:
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-json</artifactId>
<version>2.10.2</version>
</dependency>
然后,在你的实体类中使用@Type
注解来指定JSON字段的类型:
import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Map;
@Entity
@Table(name = "your_table")
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
public class YourEntity {
@Id
private Long id;
@Type(type = "jsonb")
private Map<String, Object> jsonData;
// Getters and setters...
}
确保你的ObjectMapper
配置正确,并且你的实体类中的jsonData
字段使用了Map
来存储JSON对象。
最后,确保在你的application.properties
或application.yml
中配置了Hibernate类型:
# application.properties
spring.jpa.properties.hibernate.types_to_string_mapping_enabled=true
这样就可以在Spring Boot应用中正确地存储和读取MySQL中的JSON类型字段了。
评论已关闭