DEV Community

Er. Bhupendra
Er. Bhupendra

Posted on

PART 9 :CONTROLLER ALL CONCEPT IN SPRINGBOOT PROJECT

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;
}
Enter fullscreen mode Exit fullscreen mode

DTO:

public class UserDTO {
    private Long id;
    private String username;
    private String email;
}
Enter fullscreen mode Exit fullscreen mode

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;
}
Enter fullscreen mode Exit fullscreen mode

Use in Controller:

User user = userService.findById(id);
UserDTO dto = toDTO(user);
return ResponseEntity.ok(dto);
Enter fullscreen mode Exit fullscreen mode

👉 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();
    }
}
Enter fullscreen mode Exit fullscreen mode

Use:

User user = userService.findById(id);
UserDTO dto = new UserDTO(user);
return ResponseEntity.ok(dto);
Enter fullscreen mode Exit fullscreen mode

👉 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;
    }
}
Enter fullscreen mode Exit fullscreen mode

Use:

UserDTO dto = UserMapper.toDTO(user);
Enter fullscreen mode Exit fullscreen mode

👉 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);
}
Enter fullscreen mode Exit fullscreen mode

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
✔ fir ResponseEntity<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)