4 MINDS

Sistema para Gestão de Conhecimento

Usando ResultTransformer


Introdução

Nesse artigo veremos com usar o recurso de ResultTransformer, que é a capacidade em converter resultados retornados do banco em um objeto modelo.


Uso

Os métodos do ResultTransformer estão disponíveis na interface padrão do serviço Veloster<T>, e são eles:
Java Code
<E> List<E> executeNativeTransformer(String query, Class<E> resultTransformer, Object... params);
<E> E executeNativeSingleTransformer(String query, Class<E> resultTransformer, Object... params);

Para cada registro retornado na consulta, é criada uma nova entidade do tipo Class<E> resultTransformer, e para cada campo configurado na consulta SQL (String query) é procurado um atributo com o mesmo nome na classe de transformação (resultTransformer). A classe de transformação não precisa ser uma classe persistente.

Exemplo:
Java Code
class SimplePerson{
  String name;
  // getters and setters
}

Veloster<Person> veloster = VelosterRepository.getORM(Person.class);


List<SimplePerson> simpleList = veloster.executeNativeTransformer("select name from person", SimplePerson.class)

if(!simpleList.isEmpty()){
 say("person list foud")
}

Or

SimplePerson simplePerson = veloster.executeNativeSingleTransformer("select nome_pessoa as name from person where id = ?", SimplePerson.class, 1)

if(simplePerson != null){
 say("person foud")
}