PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ist es möglich, einen Datentypkonverter zu schreiben, um Postgres-JSON-Spalten zu verarbeiten?

Ja, das ist es, aber Sie müssen die Postgres-spezifische API verwenden. Im obigen Code müssen Sie die from/to-Methoden durch Folgendes ersetzen:

@Override
public ObjectNode from(Object databaseObject) {
    if (databaseObject == null) { return null; }
    try {
        PGobject dbo = (PGobject) databaseObject;
        return mapper.readValue(dbo.getValue(), ObjectNode.class);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

@Override
public Object to(ObjectNode userObject) {
    if (userObject == null) { return null; }
    try {
        PGobject dbo = new PGobject();
        dbo.setType("json");
        dbo.setValue(mapper.writeValueAsString(userObject));
        return dbo;
    } catch (JsonProcessingException|SQLException e) {
        throw new RuntimeException(e);
    }
}