que tienen clase de datos/tabla "Usuario" que tiene la columna "preferencias"¿Cómo serializar y deserializar automáticamente cadenas JSON usando JPA e Hibernate?
CREATE table "user";
ALTER TABLE "user" ADD COLUMN preferences TEXT;
preferencias de texto es texto y estoy almacenando JSON allí.
public class User extends AbstractEntity{
public String preferences;
}
por lo user.preferences
valor es "{notifyByEmail:1, favouriteColor:"blue" }"
¿Cómo puedo envolverlo con un poco de anotación para que pueda acceder a ella como
user.preferences.notifyByEmail
o sin necesidad de envolver al objeto de datos
user.preferences.get("notifByEmail");
user.preferences.set("notifByEmail",true);
Imagino que podría haber alguna anotación de Jackson que pueda dd a campo como
@JsonGenerate
public String preferences;
Soy bastante nuevo a la APP y la documentación es empinada.
Creo que mi caso es bastante común. ¿Alguien puede dar algún ejemplo?
¿Cuál es la razón fundamental para querer almacenar estos datos como Cadenas JSON y no campos separados, distintos (Aquí, de tipos booleanos y enum)? – Samuel
Justificación, no quiero admitir todas las preferencias de valores clave como campos separados. Clave de preferencia: los valores son cada vez mayores y hay bastantes de ellos. cambiar el modelo o agregar campo a la base de datos para cada uno de ellos es una exageración. – Roman
¿Ha considerado usar una tabla de atributos para contar los valores? El caso de uso es de hecho común, pero la solución propuesta no encaja del todo en un modelo relacional. – Samuel