为了账号安全,请及时绑定邮箱和手机立即绑定

将MySQL JSON列映射到JPA会引发错误

将MySQL JSON列映射到JPA会引发错误

鸿蒙传说 2021-04-08 17:14:01
我想将MySQL JSON列映射到JPA。我做了一些研究,我用了@Type( type = "json" )@Column( columnDefinition = "json" )但这引发了异常Exception in thread "main" org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [json]    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:348)    at org.hibernate.boot.internal.ClassLoaderAccessImpl.classForName(ClassLoaderAccessImpl.java:62)    at org.hibernate.cfg.annotations.SimpleValueBinder.fillSimpleValue(SimpleValueBinder.java:538)    at org.hibernate.cfg.SetSimpleValueTypeSecondPass.doSecondPass(SetSimpleValueTypeSecondPass.java:25)    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1621)    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1579)    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:278)    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:858)    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:885)    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)    at com.savemonk.ce.utility.hibernateAndJPA.JPAUtility.getEntityManagerFactory(JPAUtility.java:12)    at com.savemonk.ce.v2.pricegraph.manager.AddNewPriceTrackRecord.addNewPriceTrackRecordTest(AddNewPriceTrackRecord.java:29)    at com.savemonk.ce.v2.pricegraph.manager.AddNewPriceTrackRecord.main(AddNewPriceTrackRecord.java:23)我知道@Type是hibernate的org.hibernate.annotations.Type。在JPA中映射列的正确方法是什么?如果需要,我可以发布实体类。任何解释JPA + JSON-type-column的链接和资源都会有很大帮助。
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

json休眠ORM中没有类型。您可以使用提供对JSON支持的Hibernate Types项目。

要添加对的支持json,请在@TypeDef您的实体中添加以下注释:

@TypeDef(name = "json", typeClass = JsonStringType.class)

您还需要添加以下Maven依赖项:

<dependency>
    <groupId>com.vladmihalcea</groupId>
    <artifactId>hibernate-types-52</artifactId>
    <version>${hibernate-types.version}</version></dependency>

查看本文,了解如何将JsonStringTypeMySQL与结合使用。


查看完整回答
反对 回复 2021-04-21
  • 2 回答
  • 0 关注
  • 458 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信