Das JSONArray-Feld des Spring Boot-Rückgabemodells ist leer
P粉076987386
P粉076987386 2023-09-12 15:56:44
0
1
469

Ich habe einJSONArray-Feld im Objekt:

@Column(name = "_history", columnDefinition = "JSON") @Convert(converter = JSONArrayConverter.class) private JSONArray history;

Dies ist der Code fürJSONArrayConverter:

@JsonSerialize @Converter(autoApply = true) public class JSONArrayConverter implements AttributeConverter { public static final Logger LOGGER = LoggerFactory.getLogger(JSONObjectConverter.class); @Override public String convertToDatabaseColumn(JSONArray array) { LOGGER.debug(array.toString()); if (array == null) return new JSONArray().toString(); String data = null; try { data = array.toString(); } catch (final Exception e) { LOGGER.error("JSON writing error", e); } return data; } @Override public JSONArray convertToEntityAttribute(String data) { if (_EMPTY.equals(data) || data == null || "[]".equals(data)) return new JSONArray(); JSONArray array = null; try { array = new JSONArray(data); } catch (final Exception e) { LOGGER.error("JSON reading error", e); } return array; } }

Das Problem besteht darin, dass Spring Boot beim Anfordern des Objekts aus der MySQL-Datenbank (der Verlauf ist eine JSON-Spalte und enthält Daten) es als leer zurückgibt:

"history": {}
P粉076987386
P粉076987386

Antworte allen (1)
P粉496886646

最后,我解决了这个问题。

 io.hypersistence hypersistence-utils-hibernate-60 3.4.3 

首先,将上述存储库添加到pom.xml中。然后将代码更改为以下内容:

@Column(name = "_history", columnDefinition = "json") @Type(JsonType.class) private List> history = new ArrayList<>();

然后一切都正常工作。

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!