PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Est-il possible d'écrire un convertisseur de type de données pour gérer les colonnes JSON postgres ?

Oui, c'est le cas, mais vous devez utiliser l'API spécifique à Postgres. Dans le code ci-dessus, vous devez remplacer les méthodes from/to par ce qui suit :

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