Mysql
 sql >> Database >  >> RDS >> Mysql

Dati di primavera con tipo JSON Mysql

Secondo Spring Data Documenti Appendice D:Tipi restituiti dalle query del repository , gli unici tipi supportati sono:void, primitives, tipi di wrapper, T, Iterator, Collection, List, Optional, Stream, Future, CompletableFuture, ListenableFuture, Slice, Page, GeoResult, GeoResults, GeoPage.

Come puoi vedere, per ora, non è supportato. Una delle idee alla base penso che non sia ancora un senso comune di tutti i database.

Ovviamente, puoi utilizzare questa memorizzazione come Json e creare un convertitore per essa:

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

e:

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

Ovviamente senza quell'approccio, non utilizzerai Json in un modo carino come è capace MySQL. Ma penso che non ci siano problemi se crei query specializzate MySQL per utilizzarle.