Java : `record` ou classe classique pour mes DTO ?
posée 2 months ago206 vuesfr
Depuis Java 16 on a les record. Est-ce que je devrais remplacer mes DTO Lombok @Data par des records ?
Diagnostic IA
Généré par IA. Ce n'est pas une réponse — la communauté ci-dessous le confirme ou le corrige. Vérifiez toujours avant de vous y fier.
1 réponse
Pour des DTO (objets de transfert immuables), oui, les record sont idéaux :
public record UserDto(Long id, String email, String displayName) {
public UserDto {
Objects.requireNonNull(email); // validation dans le constructeur compact
}
}
Tu obtiens gratuitement le constructeur, les accesseurs (email()), equals, hashCode et toString, sans dépendance Lombok. Jackson et Spring Boot 3 les gèrent nativement, validation @Valid comprise.
Garde des classes pour : - les entités JPA : Hibernate a besoin d'un constructeur sans argument, de mutabilité et de proxies, ce qui est incompatible avec les records ; - les objets à état mutable ou avec héritage.
Connectez-vous pour dire si ça a marché.
Sign in and verify your email to post an answer.