0
0
Spring Bootframework~20 mins

Nested DTOs in Spring Boot - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Nested DTO Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the output of this nested DTO serialization?
Given the following Spring Boot DTO classes and a controller returning a nested DTO, what JSON will be returned to the client?
Spring Boot
public record AddressDTO(String street, String city) {}

public record UserDTO(String name, AddressDTO address) {}

@RestController
public class UserController {
    @GetMapping("/user")
    public UserDTO getUser() {
        AddressDTO address = new AddressDTO("123 Main St", "Springfield");
        return new UserDTO("John Doe", address);
    }
}
A{"name":"John Doe","address":null}
B{"name":"John Doe","address":"123 Main St, Springfield"}
C{"name":"John Doe","address":{"street":"123 Main St","city":"Springfield"}}
D{"name":"John Doe","address":{"street":"123 Main St"}}
Attempts:
2 left
💡 Hint
Think about how nested records are serialized by default in Spring Boot with Jackson.
state_output
intermediate
1:30remaining
What is the value of the nested DTO field after mapping?
Consider these DTOs and a mapping method that creates a nested DTO. What is the value of userDTO.address.city after calling mapToUserDTO()?
Spring Boot
public record AddressDTO(String street, String city) {}
public record UserDTO(String name, AddressDTO address) {}

public UserDTO mapToUserDTO() {
    AddressDTO address = new AddressDTO("456 Elm St", "Metropolis");
    return new UserDTO("Alice", address);
}
A"Metropolis"
B"456 Elm St"
Cnull
D"Alice"
Attempts:
2 left
💡 Hint
Remember the nested DTO stores city as a separate field.
📝 Syntax
advanced
2:30remaining
Which option correctly defines a nested DTO with Lombok in Spring Boot?
You want to create nested DTOs using Lombok annotations. Which code snippet correctly defines UserDTO with a nested AddressDTO?
A
@Data public class UserDTO { private String name; private AddressDTO address; }
@Data public class AddressDTO { private String street; private String city; }
B
@Data public class UserDTO { private String name; private String address; }
@Data public class AddressDTO { private String street; private String city; }
C
@Data public class UserDTO { private String name; private AddressDTO address; }
@Data public class AddressDTO { private String street; }
D
@Data public class UserDTO { private String name; private AddressDTO address; }
@Data public class AddressDTO { private String city; }
Attempts:
2 left
💡 Hint
Nested DTOs require matching fields in both classes.
🔧 Debug
advanced
3:00remaining
Why does this nested DTO cause a JSON serialization error?
Given these DTOs, the controller returns UserDTO but the JSON response fails. What is the cause?
Spring Boot
public class AddressDTO {
    private String street;
    private String city;
    // no getters or setters
}

public class UserDTO {
    private String name;
    private AddressDTO address;
    // getters and setters only for name
}

@RestController
public class UserController {
    @GetMapping("/user")
    public UserDTO getUser() {
        AddressDTO address = new AddressDTO();
        address.street = "789 Oak St";
        address.city = "Gotham";
        UserDTO user = new UserDTO();
        user.setName("Bruce");
        user.setAddress(address);
        return user;
    }
}
AAddressDTO fields are private but should be public for serialization.
BAddressDTO lacks getters, so Jackson cannot serialize its fields.
CUserDTO is missing a no-args constructor causing deserialization failure.
DUserDTO's name field is missing a setter causing serialization error.
Attempts:
2 left
💡 Hint
Jackson needs getters to read private fields during serialization.
🧠 Conceptual
expert
3:30remaining
How does Spring Boot handle nested DTOs with circular references during JSON serialization?
Consider two nested DTOs referencing each other, causing a circular reference. What is the default behavior of Spring Boot's JSON serialization, and how can it be resolved?
ASpring Boot returns null for one of the nested objects to prevent loops.
BSpring Boot automatically detects and ignores circular references without errors.
CSpring Boot serializes both objects fully, duplicating data infinitely.
DSpring Boot throws a StackOverflowError by default; use @JsonManagedReference and @JsonBackReference to fix.
Attempts:
2 left
💡 Hint
Think about how Jackson handles circular references by default.