Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Spring Data mit Mysql JSON-Typ

Gemäß Spring Data Docs Anhang D:Rückgabetypen von Repository-Abfragen , sind die einzigen unterstützten Typen:void, primitives, Wrapper types, T, Iterator, Collection, List, Optional, Stream, Future, CompletableFuture, ListenableFuture, Slice, Page, GeoResult, GeoResults, GeoPage.

Wie Sie sehen können, wird es vorerst nicht unterstützt. Eine der Ideen dahinter ist meines Erachtens, dass es noch nicht allen Datenbanken gemeinsam ist.

Natürlich können Sie diese Speicherung als Json verwenden und einen Konverter dafür erstellen:

  @Column(name = "configuration", nullable = false)
  @Convert(converter = PluginAnalyzerConfigConverter.class)
  private PluginAnalyzerConfig configuration;

und:

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);
  }
}

Offensichtlich werden Sie Json ohne diesen Ansatz nicht so gut nutzen, wie es MySQL kann. Aber ich denke, dass es kein Problem gibt, wenn Sie spezielle MySQL-Abfragen erstellen, um davon Gebrauch zu machen.