Bird
Raised Fist0
Spring Bootframework~10 mins

Entity to DTO mapping in Spring Boot - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a DTO class with private fields and public getters.

Spring Boot
public class UserDTO {
    private String [1];

    public String getUsername() {
        return username;
    }
}
Drag options to blanks, or click blank then click option'
Ausername
Buser_id
Cname
DuserName
Attempts:
3 left
💡 Hint
Common Mistakes
Using a field name that does not match the getter method.
Using underscores in variable names in Java.
2fill in blank
medium

Complete the code to map an entity's field to a DTO field in the constructor.

Spring Boot
public UserDTO(UserEntity entity) {
    this.username = entity.[1]();
}
Drag options to blanks, or click blank then click option'
AgetUsername
Bget_name
CgetuserName
DgetUserName
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect casing in method names.
Using underscores in method names.
3fill in blank
hard

Fix the error in the mapping method that converts an entity to a DTO.

Spring Boot
public static UserDTO fromEntity(UserEntity entity) {
    return new UserDTO([1]);
}
Drag options to blanks, or click blank then click option'
Aentity.convertToDTO()
Bentity.getUsername()
Centity.toDTO()
Dentity
Attempts:
3 left
💡 Hint
Common Mistakes
Passing a field value instead of the whole entity to the constructor.
Calling non-existent methods on the entity.
4fill in blank
hard

Complete the code to complete the method that converts a list of entities to a list of DTOs using streams.

Spring Boot
public static List<UserDTO> fromEntityList(List<UserEntity> entities) {
    return entities.stream()
        .map(entity -> new UserDTO(entity))
        .collect(Collectors.[1]());
}
Drag options to blanks, or click blank then click option'
BtoList
CtoSet
DtoCollection
Attempts:
3 left
💡 Hint
Common Mistakes
Calling a method on the entity inside the constructor call.
Using Collectors.toSet() when a list is expected.
5fill in blank
hard

Fill all three blanks to complete the code for a manual mapping method from DTO to entity.

Spring Boot
public UserEntity toEntity() {
    UserEntity entity = new UserEntity();
    entity.set[1](this.[2]);
    entity.setEmail(this.[3]);
    return entity;
}
Drag options to blanks, or click blank then click option'
AUsername
Busername
Cemail
DEmail
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect casing in setter method names.
Using wrong field names from the DTO.

Practice

(1/5)
1. What is the main purpose of mapping an Entity to a DTO in Spring Boot?
easy
A. To speed up database queries
B. To separate database structure from data sent to clients
C. To store data in a different database
D. To automatically generate database tables

Solution

  1. Step 1: Understand Entity and DTO roles

    Entity represents database data, DTO is for data transfer outside the app.
  2. Step 2: Identify the purpose of mapping

    Mapping hides database details and controls what data is sent to clients.
  3. Final Answer:

    To separate database structure from data sent to clients -> Option B
  4. Quick Check:

    Entity to DTO mapping = data separation [OK]
Hint: Think: Entity is internal, DTO is external data format [OK]
Common Mistakes:
  • Confusing DTO with database storage
  • Thinking mapping speeds up queries
  • Assuming DTO changes database schema
2. Which of the following is the correct way to manually map an Entity field name to a DTO field fullName in Java?
easy
A. entity.getName(dto.setFullName());
B. entity.setName(dto.getFullName());
C. dto.getFullName(entity.setName());
D. dto.setFullName(entity.getName());

Solution

  1. Step 1: Identify source and target objects

    Entity is source, DTO is target for mapping.
  2. Step 2: Use getter on entity and setter on DTO

    Correct syntax is calling entity.getName() and passing to dto.setFullName().
  3. Final Answer:

    dto.setFullName(entity.getName()); -> Option D
  4. Quick Check:

    Getter from entity, setter on DTO [OK]
Hint: Getter from entity, setter on DTO for mapping [OK]
Common Mistakes:
  • Reversing source and target in mapping
  • Using setter as getter or vice versa
  • Calling methods with wrong parameters
3. Given the following code snippet, what will be the output of dto.getAge() after mapping?
public class UserEntity {
  private int age = 30;
  public int getAge() { return age; }
}

public class UserDTO {
  private int age;
  public void setAge(int age) { this.age = age; }
  public int getAge() { return age; }
}

UserEntity entity = new UserEntity();
UserDTO dto = new UserDTO();
dto.setAge(entity.getAge());
System.out.println(dto.getAge());
medium
A. 30
B. 0
C. null
D. Compilation error

Solution

  1. Step 1: Check initial value in Entity

    Entity's age is set to 30 by default.
  2. Step 2: Map Entity age to DTO and print

    DTO's age is set to entity.getAge(), so dto.getAge() returns 30.
  3. Final Answer:

    30 -> Option A
  4. Quick Check:

    Entity age 30 mapped to DTO age 30 [OK]
Hint: Mapping copies values exactly unless changed [OK]
Common Mistakes:
  • Assuming default int is null
  • Confusing getter/setter roles
  • Expecting compilation error without syntax issues
4. Identify the error in this manual mapping method:
public UserDTO mapToDTO(UserEntity entity) {
  UserDTO dto = new UserDTO();
  dto.setName(entity.getFullName());
  dto.setEmail(entity.getEmail());
  return dto;
}

Assuming UserEntity has a getName() method but no getFullName() method.
medium
A. Setter methods used incorrectly
B. Missing return statement
C. Calling non-existent method getFullName() on entity
D. DTO object not created

Solution

  1. Step 1: Check entity methods used

    Code calls entity.getFullName(), but entity only has getName().
  2. Step 2: Identify cause of error

    Calling a method that does not exist causes a compile-time error.
  3. Final Answer:

    Calling non-existent method getFullName() on entity -> Option C
  4. Quick Check:

    Method must exist on entity for mapping [OK]
Hint: Verify entity methods before calling in mapping [OK]
Common Mistakes:
  • Assuming method names match automatically
  • Ignoring compile errors from wrong method calls
  • Confusing getter names between classes
5. You want to map a list of UserEntity objects to a list of UserDTO objects using Java streams in Spring Boot. Which code snippet correctly performs this mapping assuming a method mapToDTO(UserEntity entity) exists?
hard
A. List<UserDTO> dtos = entities.stream().map(this::mapToDTO).collect(Collectors.toList());
B. List<UserDTO> dtos = entities.map(entity -> mapToDTO(entity));
C. List<UserDTO> dtos = entities.forEach(entity -> mapToDTO(entity));
D. List<UserDTO> dtos = entities.stream().forEach(this::mapToDTO);

Solution

  1. Step 1: Use stream() to process list

    entities.stream() creates a stream to transform elements.
  2. Step 2: Use map() to convert each entity to DTO

    map(this::mapToDTO) applies the mapping method to each element.
  3. Step 3: Collect results into a list

    collect(Collectors.toList()) gathers mapped DTOs into a list.
  4. Final Answer:

    List<UserDTO> dtos = entities.stream().map(this::mapToDTO).collect(Collectors.toList()); -> Option A
  5. Quick Check:

    Stream map + collect to list = correct mapping [OK]
Hint: Use stream().map(...).collect(toList()) for list mapping [OK]
Common Mistakes:
  • Using forEach instead of map for transformation
  • Calling map on list directly without stream()
  • Not collecting results after mapping