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);
<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")
}
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")
}