Exibir colunas de tabela de acordo com o usuário

Bom dia Pessoal,

Estou desenvolvendo um sistema em que é necessário que o usuário escolha de maneira dinâmica quais colunas devem ser exibidas em uma tabela.

A princípio todas as colunas são exibidas e o usuário escolhe quais devem ser ocultadas. Uma vez que o usuário ocultou algumas colunas o sistema deve salvar esta preferência para futuros acessos do mesmo usuário.

Estou pensando em utilizar dynamicColumns do primefaces mas não sei ainda a melhor maneira de persistir esta preferência.

Alguém que já tenha implementado isto pode me dar umas dicas de como o fez?

Obrigado