DTO
Can anyone help me to create DTO for this classes and also explain me why we use DTO more
package com.ShelfSpace.ShelfSpace.model;
import java.util.List;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import jakarta.persistence.JoinColumn;
@Entity
@Table(name = "registered_user")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserEntity {
@Column(name = "name", nullable = false)
private String name;
@Id
@Column(name = "email", nullable = false, unique = true)
private String email;
@Column(name = "password", nullable = false)
private String password;
@ManyToMany
@JoinTable(
name = "user_info_user_roles",
joinColumns = @JoinColumn(name = "user_info_email", referencedColumnName = "email"),
inverseJoinColumns = @JoinColumn(name = "user_roles_id")
)
private List<UserRoleEntity> roles;
}package com.ShelfSpace.ShelfSpace.model;
import java.util.List;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import jakarta.persistence.JoinColumn;
@Entity
@Table(name = "registered_user")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserEntity {
@Column(name = "name", nullable = false)
private String name;
@Id
@Column(name = "email", nullable = false, unique = true)
private String email;
@Column(name = "password", nullable = false)
private String password;
@ManyToMany
@JoinTable(
name = "user_info_user_roles",
joinColumns = @JoinColumn(name = "user_info_email", referencedColumnName = "email"),
inverseJoinColumns = @JoinColumn(name = "user_roles_id")
)
private List<UserRoleEntity> roles;
}package com.ShelfSpace.ShelfSpace.model;
import java.util.List;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "user_roles")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserRoleEntity {
@Id
@Column(name = "role_id")
private int roleId;
@Column(name = "role_name", nullable = false, unique = true)
private String roleName;
@ManyToMany(mappedBy = "roles")
private List<UserEntity> registeredUser;
}package com.ShelfSpace.ShelfSpace.model;
import java.util.List;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "user_roles")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserRoleEntity {
@Id
@Column(name = "role_id")
private int roleId;
@Column(name = "role_name", nullable = false, unique = true)
private String roleName;
@ManyToMany(mappedBy = "roles")
private List<UserEntity> registeredUser;
}