У меня есть два класса / таблицы --- Клиент и Адрес с двунаправленным отношением один к одному.
Я получаю подробности от эти две таблицы и выставление их с помощью контроллера покоя, и я получаю следующий вывод.
Но вместо тегов <List>
и <item>
я хочу <CustomerList>
и <Customer>
соответственно. Как это -
<CustomerList>
<Customer>
<id>1</id>
<firstName>Banerjee</firstName>
<lastName/>
<gender/>
<date>2012-01-26T09:00:00.000+0000</date>
<addressdto>
<id>1</id>
<city>Purulia</city>
<country>Indiia</country>
</addressdto>
</Customer>
...........
класс контроллера
@RestController
public class HomeController {
@Autowired
private CustomerService customerService;
@GetMapping(path="/customers",produces= {"application/xml"})
public List<CustomerDto> getCustomers(){
List<CustomerDto> cusDtoList=new ArrayList<>();
cusDtoList=customerService.getCustomers();
return cusDtoList;
}
Класс обслуживания
@Service
public class CustomerService {
@Autowired
private CustomerRepository customerRepository;
@Autowired
private EntityToDtoMapper entityToDto;
public List<CustomerDto> getCustomers(){
List<Customer>customerList=customerRepository.findAll();
//CustomerDtoList customerDtoList=new CustomerDtoList();
List<CustomerDto> cusDtoList=new ArrayList<>();
for (Customer customer : customerList) {
CustomerDto customerDto=entityToDto.mapToDto(customer);
//customerDtoList.addCustomerDto(customerDto);
cusDtoList.add(customerDto);
}
return cusDtoList;
}
AddressDto
@JsonIgnoreProperties(ignoreUnknown=true)
public class AddressDto {
private int id;
private String city;
private String country;
...getter/settters and no arg cons/ no annotations
}
CustomerDto
@XmlRootElement
@JsonIgnoreProperties(ignoreUnknown=true)
public class CustomerDto {
private int id;
private String firstName;
private String lastName;
private String gender;
private Date date;
private AddressDto addressdto;
public CustomerDto() {
super();
}
@XmlElement
public AddressDto getAddressdto() {
return addressdto;
}
...other getter/setters..no annotations
MaptoDto class
@Component
public class EntityToDtoMapper {
public CustomerDto mapToDto(Customer customer) {
**getting frm customer and setting it to dto**
return customerDto;
}