首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql JSON类型的Spring数据

Mysql JSON类型的Spring数据
EN

Stack Overflow用户
提问于 2016-09-04 21:17:42
回答 1查看 5.3K关注 0票数 3

我们在我们的项目中使用了spring数据和JPA。Out MySQL服务器版本为5.7。

我有两个问题:

1) spring数据与在MySQL db上将对象持久化到新的JSON类型中是否兼容?换句话说,我希望有一个实体,而不是在它的表中有多个列-它将包含一个JSON类型的列。

2) spring数据仓库是否兼容这种机制?例如(通过存储库接口自动生成CRUD操作的代码)?

EN

回答 1

Stack Overflow用户

发布于 2016-09-16 06:36:55

根据Spring Data Docs Appendix D: Repository query return types,唯一支持的类型是:空、原语、包装器类型、T、迭代器、集合、列表、可选、流、未来、CompletableFuture、ListenableFuture、切片、页面、GeoResult、GeoResults、GeoPage。

正如您所看到的,目前还不支持它。它背后的一个想法是,我认为它还不是所有数据库的常识。

显然,您可以将此存储用作Json,并为其创建一个转换器:

代码语言:javascript
复制
  @Column(name = "configuration", nullable = false)
  @Convert(converter = PluginAnalyzerConfigConverter.class)
  private PluginAnalyzerConfig configuration;

和:

代码语言:javascript
复制
public class PluginAnalyzerConfigConverter implements
    AttributeConverter<PluginAnalyzerConfig, String> {

  @Override public String convertToDatabaseColumn(PluginAnalyzerConfig config) {
    Gson parser = new Gson();
    return parser.toJson(config, PluginAnalyzerConfig.class);
  }

  @Override public PluginAnalyzerConfig convertToEntityAttribute(String source) {
    Gson parser = new Gson();
    return parser.fromJson(source, PluginAnalyzerConfig.class);
  }
}

显然,如果没有这种方法,您将无法像MySQL那样很好地使用Json。但我认为,如果您创建专门的MySQL查询来使用它,这是没有问题的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39317322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档