Entity ➝ DTO convert karne ke 3 main tareeke hote hain (industry me yahi use hote hain):
✅ 1️⃣ Manual Mapping (Sabse basic & clear)
Entity:
public class User {
private Long id;
private String username;
private String email;
private String password;
}
DTO:
public class UserDTO {
private Long id;
private String username;
private String email;
}
Convert method:
public UserDTO toDTO(User user) {
UserDTO dto = new UserDTO();
dto.setId(user.getId());
dto.setUsername(user.getUsername());
dto.setEmail(user.getEmail());
return dto;
}
Use in Controller:
User user = userService.findById(id);
UserDTO dto = toDTO(user);
return ResponseEntity.ok(dto);
👉 Pros: Simple, no library
👉 Cons: Zyada fields ho to code lamba
✅ 2️⃣ Constructor based Mapping (Clean way)
DTO:
public class UserDTO {
private Long id;
private String username;
private String email;
public UserDTO(User user) {
this.id = user.getId();
this.username = user.getUsername();
this.email = user.getEmail();
}
}
Use:
User user = userService.findById(id);
UserDTO dto = new UserDTO(user);
return ResponseEntity.ok(dto);
👉 Pros: Short & clean
👉 Cons: Logic DTO me chala jata hai
✅ 3️⃣ Mapper Class (BEST PRACTICE 🔥)
Mapper:
public class UserMapper {
public static UserDTO toDTO(User user) {
UserDTO dto = new UserDTO();
dto.setId(user.getId());
dto.setUsername(user.getUsername());
dto.setEmail(user.getEmail());
return dto;
}
public static User toEntity(UserDTO dto) {
User user = new User();
user.setId(dto.getId());
user.setUsername(dto.getUsername());
user.setEmail(dto.getEmail());
return user;
}
}
Use:
UserDTO dto = UserMapper.toDTO(user);
👉 Industry standard approach
👉 Entity ↔ DTO dono possible
🚀 Advanced (Library use karna ho to)
✅ MapStruct (FAST & PRO way)
DTO:
@Mapper(componentModel = "spring")
public interface UserMapper {
UserDTO toDTO(User user);
User toEntity(UserDTO dto);
}
Bas itna hi 😎
Spring khud implementation bana dega.
🧠 Rule yaad rakho:
| Situation | Use |
|---|---|
| Small project | Manual |
| Medium project | Mapper class |
| Large project | MapStruct |
🎯 Final Answer (short me):
Entity se DTO convert karne ke liye
✔ fields copy karte ho
✔ manual ya mapper ke through
✔ firResponseEntity<UserDTO>return karte ho
Agar chaho to main tumhe:
✅ Entity → DTO → Controller full flow
✅ DTO → Entity (POST request)
✅ MapStruct setup (dependency + example)
bana deta hoon.
Bas bolo:
👉 "Full flow example dikhao"
ya
👉 "MapStruct setup dikhao"
Top comments (0)