O template de família de coluna é responsável para realizar a comunicação da entidade para um banco de dados do tipo família de coluna. Ele é subdividido em ColumnTemplate e ColumnTemplateAsync para trabalhos síncronos e assíncronos respectivamente.
ColumnTemplate
O ColumnTemplate é responsável pela persistência de uma Entidade em um banco de dados do tipo coluna. Ele é composto, basicamente, por três componentes:
ColumnEntityConverter: Responsável por converter da entidade, por exemplo, Person para ColumnEntity.
ColumnCollectionManager: Entidade manager de documentos do Diana.
ColumnWorkflow: Segue o fluxo de persistência durante os métodos de save e update.
Para a busca e a remoção da informação são utilizadas as mesmas classes do Diana para documentos, ou seja, ColumnQuery e ColumnDeleteQuery respectivamente.
Como o motor do Artemis é CDI para que se posso utilizar o ColumnTemplate basta dar um @Inject num campo.
Para isso é necessário que a aplicação injete um ColumnFamilyManager:
Para trabalhar com mais de um tipo de ColumnTemplate existem duas opções:
1) A primeira é com a utilização dos qualificadores:
2) A segunda delas é a partir do ColumnTemplateProducer
ColumnTemplateAsync
O ColumnTemplateAsync é responsável pela persistência de uma Entidade em um banco de dados do tipo família de colunas de forma assíncrona. Ele é composto, basicamente, por dois componentes:
ColumnEntityConverter: Responsável por converter da entidade, por exemplo, Person para ColumnEntity.
ColumnFamilyManagerAsync: Entidade manager de documentos do Diana de forma assíncrona.
Para a busca e a remoção da informação são utilizadas as mesmas classes do Diana para documentos, ou seja, ColumnQuery e ColumnDeleteQuery respectivamente também é possível o uso de callback.
Como o motor do Artemis é CDI para que se posso utilizar o ColumnTemplate basta dar um @Inject num campo.
Para isso é necessário que a aplicação injete um ColumnFamilyManagerAsync:
Para trabalhar com mais de um tipo de ColumnTemplateAsync existem duas opções:
1) A primeira é com a utilização dos qualificadores:
2) A segunda delas é a partir do ColumnTemplateAsyncProducer