You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java JPA实体类中为Map接口字段配置JSON类型并解决JsonType识别报错

JsonType类无法识别解决方案

步骤1:引入对应依赖

JsonType 不属于Hibernate官方核心包,是第三方工具库Hypersistence Utils(原Hibernate Types)提供的类,需要先引入对应依赖,注意版本要和你项目使用的Hibernate版本匹配:

  • Hibernate 5.4/5.5/5.6版本使用2.x分支依赖
  • Hibernate 6.0+版本使用3.x分支依赖

Maven依赖示例

<!-- Hibernate 5.5版本对应依赖 -->
<dependency>
    <groupId>io.hypersistence</groupId>
    <artifactId>hypersistence-utils-hibernate-55</artifactId>
    <version>2.16.3</version>
</dependency>

Gradle依赖示例

// Hibernate 5.5版本对应依赖
implementation 'io.hypersistence:hypersistence-utils-hibernate-55:2.16.3'

步骤2:导入正确的全限定类名

依赖引入完成后,在实体类头部导入对应包路径即可解决标红问题:

import io.hypersistence.utils.hibernate.type.json.JsonType;

可选:Hibernate 6+ 原生解决方案

如果你使用的是Hibernate 6及以上版本,无需引入第三方依赖,直接使用官方原生的JSON映射注解即可,不需要配置@TypeDefs:

// 直接在字段上添加如下注解即可
@Column(columnDefinition = "json")
@JdbcTypeCode(SqlTypes.JSON)
private Map<String, String> businessHours;

额外注意事项

  • 你提供的数据库迁移SQL存在字段拼写错误:business_houres 应为 business_hours,否则执行SQL会提示字段不存在。
  • 确认你的数据库版本原生支持JSON类型(如PostgreSQL 9.4+、MySQL 5.7+等),低版本数据库需要做额外兼容处理。

内容的提问来源于stack exchange,提问作者Jack Nickelson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:18:01