Từ quan điểm của tôi, cấu hình hoặc mã java để ánh xạ một số thuộc tính đặc biệt luôn cần thiết.
Ở đây tôi muốn để có một DO
và DTO
ví dụ
DO:{
id: "id",
name:"name",
doName1: "doName1",
nestedObj: {
id: "nestedObjId",
name: "nestedObjName"
}
}
DTO{
id: "",
name: "",
name1: "" // for mapping doName1 in DO.
nestedId: "", //for DT.nestObj.id
nestedName: "", //for DT.nestObj.name
}
Đối Dozer hoặc Orika cả hai đều có thể tự động khớp với id và tài sản tên giữa DO và DTO mà không cần bất kỳ cấu hình hoặc java mã bởi vì họ là với cùng tên và loại thuộc tính. Nhưng nếu bạn muốn DO.doName1
< ---->DTO.name1
hoặc DO.nestedObj.id
< --->DTO.nestedId
bạn cần thực hiện một số cấu hình (thông qua xml hoặc java) để báo cho công cụ lập bản đồ bạn định làm điều đó. Tôi nghĩ rằng đối với trường hợp sử dụng của bạn, Dozer, Orika và ModelMapper đều ổn. Nhưng đối với tôi, tôi đang chuyển dự án của tôi từ dozer sang Orika vì mục đích thực hiện. Mặc dù Orika không quá trưởng thành như dozer, không phải như vậy thông minh và đòi hỏi tôi phải làm rất nhiều công việc bổ sung để duy trì cấu hình lập bản đồ tùy chỉnh của tôi. Nếu dự án của bạn không quá quan tâm đến hiệu suất, tôi sẽ giới thiệu bạn dozer, nó rất dễ sử dụng và hỗ trợ rất nhiều tính năng nâng cao. Nếu không, nếu bạn đang mua hiệu suất cao, tôi đề nghị bạn orika.
Nguồn
2012-08-16 02:39:17
Một tùy chọn khác sẽ là http://jtransfo.org/. Điều này cho phép ánh xạ được xác định bằng cách sử dụng chú thích trên TO. Nó có tính năng bổ sung mà bạn có thể có các chuyển đổi bảo mật/tùy chọn dựa trên thẻ. –
hãy xem https://github.com/amgohan/zebra/: (Tự làm đối tượng lập bản đồ và sử dụng ngựa vằn cho cách thống nhất để chèn những người lập bản đồ.) Ngựa vằn đi kèm với một cách đơn giản và thống nhất để: tạo những người lập bản đồ của bạn; quản lý một chiều và ánh xạ ngược trong một lớp; đăng ký những người lập bản đồ của bạn và sử dụng lại chúng ở bất cứ đâu trong ứng dụng của bạn; quản lý ánh xạ sâu. – amgohan
Đây là một lựa chọn khá tốt: http://modelmapper.org/ – cosbor11