ドメインにdtoをマッピングし、そのオブジェクトにサイクルがある場合のバックグラウンドをマップするベストプラクティスは何ですか? Userオブジェクト:ドメインモデルをDTOにマッピングするサイクル
public class User {
private int id;
private String firstname;
private String lastname;
private List<Order> orders;
// ... some other properties and getters and setters
}
とOrderオブジェクト:
public class Order {
private int id;
private User owner;
}
がどのように私はのDTOにこれらのドメインモデルをマッピングする必要がありますか?例えば、私はこれらの2つのオブジェクトを持っていますかここに私のマッピング機能の例です。
public UserDTO userToDto(User user) {
UserDTO dto = new UserDTO();
dto.setIs(user.getId());
dto.setFirstname(user.getFirsname());
dto.setLastname(user.getLastname());
List<OrderDTO> ordersDto = new List<OrderDTO>();
for (Order order : user.getOrders()) {
OrderDTO orderDto = new OrderDTO();
orderDto.setId(order.getId());
orderDto.setUser(...) // what I should I set here?
ordersDto.add(orderDto);
}
dto.setOrders(ordersDto);
return dto;
}
私はorderDto.setUser(...)機能に問題があります。あなたはベストプラクティスを私に見せてもらえますか?ユーザーのマッピングプロパティをステップバイステップで開始すると、実際にマッピングしているOrdersマッピングが終了し、サイクルが作成されます。答えをありがとう。
これらのDTOをJSONまたはXMLにシリアル化することを前提としています。サイクルがあるとどうなりますか?あなたは何を推測していますか? –
まだサービスを作成していません。私は学校のプロジェクトに仕事を任せるだけで、私は実装を考えています。ユーザープロパティをuserToDto関数に実装し始めると、これらのプロパティの1つがList of Ordersであるため、次はUserのようなOrderのプロパティのマッピングを開始しました。そして私の質問は、これを回避する方法とベストプラクティスです。私はより明確に説明してくれることを願っています。 –
@davidxxx OrderDTOにはUserではなくUserDTOの参照があるため、コードは使用できません。 UserプロパティからUserDTOプロパティへのマッププロパティが必要です。 –