Como serializar e desserializar automaticamente strings JSON usando JPA e Hibernate?

Eu tenho classe de dados / tabela "Usuário" que tem coluna "preferências"

CREATE table "user"; 
ALTER TABLE "user" ADD COLUMN preferences TEXT;

O tipo de preferências é TEXT e estou armazenando o JSON lá.

public class User extends AbstractEntity{
public String preferences;
}

assimuser.preferences valor é"{notifyByEmail:1, favouriteColor:"blue" }"

Como posso envolvê-lo com algumas anotações para que eu possa acessá-lo como

user.preferences.notifyByEmail

ou sem necessidade de envolver em objeto de dados

user.preferences.get("notifByEmail");
user.preferences.set("notifByEmail",true);

Eu imagino que poderia haver alguma anotação de Jackson que eu possa adicionar ao campo como

@JsonGenerate
public String preferences;

Eu sou relativamente novo no JPA e a documentação é íngreme.

Eu acredito que meu caso é bastante comum. Alguém pode dar algum exemplo?

questionAnswers(4)

yourAnswerToTheQuestion