Orika에 익숙하지 않은 나는 방망이를 즉시 받아 들일 것이며 여전히 작동 방식과 입/출력 방법을 배우고 있습니다. 그것의.응답 (래퍼) 객체 내의 DTO 목록에 엔티티 목록의 Orika 데이터 매핑
자신이 발견 한 상황은 주소 목록 (JSON REST Object)을 반환하는 EmberJS 웹 클라이언트가 호출하는 웹 서비스입니다. 내가 가진 문제는 반환해야하는 응답은 단순히 List가 들어있는 쉘/래퍼 객체입니다. DAO에서이 목록을 검색하고이를 응답 객체 내의 목록에 매핑해야합니다.
엔티티 목록을 dto 목록에 매핑하는 것은 쉽습니다. 내가 할 수있는 일. 하지만이 엔티티 목록을 응답 개체 또는이 응답 개체 내의 dto 목록에 매핑하는 방법을 파악할 수 없습니다.
나는 성공적으로 수행했습니다
MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
mapperFactory.classMap(AddressVO.class, Address.class).byDefault().register();
MapperFacade mapper = mapperFactory.getMapperFacade();
List<Address> addressesRestDto = mapper.mapAsList(addressesVO, Address.class);
response = new AddressesResponse();
response.setAddresses(addressesRestDto);
return new ResponseEntity<AddressesResponse>(response, HttpStatus.OK);
을하지만 어떻게 내가 AddressesResponse.addresses 속성으로 설정할 수 있습니다 목록에 목록을 매핑 할 mapperFactory에 지정할 수 있습니까? 내 자바 웹 서비스에서
{
"addresses" : [{
"id" : 1,
"type" : "WORK",
"street" : "6262 Sunset Drive",
"city" : "Miami",
"state" : "FL",
"zip" : "33143"
}, {
"id" : 2,
"type" : "HOME",
"street" : "101 Main Street",
"city" : "New York",
"state" : "NY",
"zip" : "10022"
}
]
}
,이의 반환 값입니다 : 내가 있다고 생각
@RequestMapping(value = "/{id}/addresses", method = RequestMethod.GET)
public ResponseEntity<AddressesResponse> retrieveContactAddresses(@PathVariable int id)
{
....
List<AddressVO> addressesVO = contactDAO.retrieveAddresses(id);
....
}
public class AddressesResponse
implements Serializable
{
private static final long serialVersionUID = -4734662942482137495L;
protected List<Address> addresses;
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}
}
@JsonInclude(Include.NON_NULL) // Ensure that only not null values gets returned in the JSON document
public class Address
extends UpdateableRestDto
{
private static final long serialVersionUID = 4332153509500388664L;
protected String type;
protected String street;
protected String city;
protected String state;
protected String zip;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getZip() {
return zip;
}
public void setZip(String zip) {
this.zip = zip;
}
}
public class AddressVO
extends UpdateableVO
{
private static final long serialVersionUID = -2536056035043485871L;
protected AddressTypeEnum type;
protected String street;
protected String city;
protected String state;
protected String zip;
public AddressTypeEnum getType() {
return type;
}
public void setType(AddressTypeEnum type) {
this.type = type;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getZip() {
return zip;
}
public void setZip(String zip) {
this.zip = zip;
}
}
성공에 성공 했습니까? – miguelcobain