Bom dia galera da Alura!
Aproveitando a dúvida que foi feita aqui no forúm sobre campos que devem ser únicos como por exemplo CPF e e-mail, na classe DTO com Bean Validations o professor comentou que não é possivel, mas e fazer isso na classe modelo?
Não sei se é uma boa prática, e se não for por favor me avise, mas vi que existe pelo Spring Data JPA, as anotações unique
que se utiliza quando tem apenas um campo único e @UniqueConstraint
que você utiliza quando tem mais de um.
Fiz um exemplo abaixo, fiz a utilização além das anotações citadas da anotação @DateTimeFormat(pattern = "dd/MM/yyyy")
na classe modelo.
Seria interessante utilizar essas anotações? Retorna também um erro 400 - bad request? Qual a desvantagem caso utilize? Qual seria a melhor prática recomendavel?
@Entity
@Table(name = "tb_users", uniqueConstraints= {
@UniqueConstraint(columnNames ={"email","cpf"})
})
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Long id;
@Column(name = "name", nullable = false)
private String name;
@Column(name = "email", nullable = false)
private String email;
@Column(name = "cpf", nullable = false)
private String cpf;
@Column(name = "birth_date")
@DateTimeFormat(pattern = "dd/MM/yyyy")
private LocalDate birthDate;
// getters and setter