public class Person {
private String name;
private String surname;
private List<Person> friends;
private Person mum;
private Person dud;
private Home home;
private Dog dog;
...gets sets...
}
public class Home {
public enum HomeType {KENNEL,HOUSE};
private String address;
private HomeType type;
private int weight;
private double price;
...gets sets...
}
Mapping Domain (ex Simple DTO)
public class PersonDTO {
private String name;
private String surname;
private AdressDTO address;
...gets sets...
}
public class AddressDTO {
private String address;
...gets sets...
}
Select name,surname and address of person and fill the relative dto.
QueryEngine<?> engine = ...
SelectMapQuery<Person,PersonDTO> query = engine.newSelectMap(Person.class,PersonDTO.class)
Person toSearch = query.target();
PersonDTO mapper = query.mapper();
query.prj(toSearch.getName(),mapper.getName());
query.prj(toSearch.getSurname(),mapper.getSuname());
query.prj(toSearch.getHome().getAddress(),mapper.getAddress().getAddress());
List res = engine.execute(query,...);
Correspondent Pseudo QL
select name,surname,home.address from Person