Template de Documentos

O template de documentos é responsável para realizar a comunicação da entidade para um banco de dados do tipo documentos. Ele é subdividido em DocumentTemplate e DocumentTemplateAsyncpara trabalhos síncronos e assíncronos respectivamente.

DocumentTemplate

O DocumentTemplate é responsável pela persistência de uma Entidade em um banco de dados do tipo documento. Ele é composto, basicamente, por três componentes:

  • DocumentEntityConverter: Responsável por converter da entidade, por exemplo, Person para DocumentEntity.

  • DocumentCollectionManager: Entidade manager de documentos do Diana.

  • DocumentWorkflow: Segue o fluxo de persistência durante os métodos de save e update.

DocumentTemplate template = //instance

Person person = new Person();
person.setAddress("Olympus");
person.setName("Artemis Good");
person.setPhones(Arrays.asList("55 11 94320121", "55 11 94320121"));
person.setNickname("artemis");

List<Person> people = Collections.singletonList(person);

Person personUpdated = template.save(person);
template.insert(people);
template.insert(person, Duration.ofHours(1L));

template.update(person);
template.update(people);

Para a busca e a remoção da informação são utilizadas as mesmas classes do Diana para documentos, ou seja, DocumentQuery e DocumentDeleteQuery respectivamente.

Como o motor do Artemis é CDI para que se posso utilizar o DocumentTemplate basta dar um @Inject num campo.

Para isso é necessário que a aplicação injete um DocumentCollectionManager:

Para trabalhar com mais de um tipo de TemplateTemplate existem duas opções:

1) A primeira é com a utilização dos qualificadores:

2) A segunda delas é a partir do DocumentTemplateProducer

DocumentTemplateAsync

ODocumentTemplateAsyncé responsável pela persistência de uma Entidade em um banco de dados do tipo documento de forma assíncrona. Ele é composto, basicamente, por dois componentes:

  • DocumentEntityConverter: Responsável por converter da entidade, por exemplo, Person para DocumentEntity.

  • DocumentCollectionManagerAsync: 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, DocumentQuery e DocumentDeleteQuery respectivamente também é possível o uso de callback.

Como o motor do Artemis é CDI para que se posso utilizar o DocumentTemplate basta dar um @Inject num campo.

Para isso é necessário que a aplicação injete um DocumentCollectionManagerAsync:

Para trabalhar com mais de um tipo de DocumentTemplate existem duas opções:

1) A primeira é com a utilização dos qualificadores:

2) A segunda delas é a partir do DocumentTemplateAsyncProducer

Last updated