我们在我们的项目中使用了spring数据和JPA。Out MySQL服务器版本为5.7。
我有两个问题:
1) spring数据与在MySQL db上将对象持久化到新的JSON类型中是否兼容?换句话说,我希望有一个实体,而不是在它的表中有多个列-它将包含一个JSON类型的列。
2) spring数据仓库是否兼容这种机制?例如(通过存储库接口自动生成CRUD操作的代码)?
发布于 2016-09-16 06:36:55
根据Spring Data Docs Appendix D: Repository query return types,唯一支持的类型是:空、原语、包装器类型、T、迭代器、集合、列表、可选、流、未来、CompletableFuture、ListenableFuture、切片、页面、GeoResult、GeoResults、GeoPage。
正如您所看到的,目前还不支持它。它背后的一个想法是,我认为它还不是所有数据库的常识。
显然,您可以将此存储用作Json,并为其创建一个转换器:
@Column(name = "configuration", nullable = false)
@Convert(converter = PluginAnalyzerConfigConverter.class)
private PluginAnalyzerConfig configuration;和:
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查询来使用它,这是没有问题的。
https://stackoverflow.com/questions/39317322
复制相似问题