No post anterior estudamos a anotação @ArchValidExclusive, que garante a exclusividade para um determinado atributo na entidade. Nesse post veremos a anotação @ArchValidExclusives, que é a forma de garantirmos exclusividade em uma entidade em mais de um atributo.
@JArchValidExclusives
Vamos ver o seguinte exemplo na entidade Pessoa. Para essa entidade foi usada a anotação @JArchValidExclusives para garantir que não exista duplicidade para os atributos nomeRazaoSocial e email.
Vejamos a definição dessa classe:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | @JArchValidExclusives(attributes = {"nomeRazaoSocial", "email"}) @Table(name = "tb_pessoa") @Entity(name = "pessoa") public class PessoaEntity extends CrudMultiTenantEntity { @SequenceGenerator(name = "PessoaIdSequence", sequenceName = "sq_idpessoa", allocationSize = 1) @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PessoaIdSequence") @Column(name = "id_pessoa") private Long id; @Column(name = "nm_nomerazaosocial", length = 100) @ArchValidRequired("label.nomeRazaoSocial") private String nomeRazaoSocial; @Column(name = "nm_apelidofantasia", length = 100) @ArchValidRequired("label.apelidoFantasia") @ArchValidExclusive private String apelidoFantasia; @Column(name = "ee_email", length = 100) @ArchValidEmail private String email; @Column(name = "nr_cpfcnpj", length = 20) @ArchValidCpfCnpj private String cpfCnpj; |
Observe que na linha 1 foi usado a anotação, para garantir que não seja cadastrado 2 registros com a mesma informações de Nome/Razão Social e E-mail.
Segue um print de uma pessoa cadastrada:
Agora vamos tentar incluir um registro com esses mesmo dados (Nome/Razão Social e E-mail):
Mas se alterarmos somente o nome:
Essa anotação possui os seguintes atributos:
caseSensitive: O conteudo avaliado será case-sensitive
message: A messagem de erro que será mostrado
ignoreProcessor: Para não criticar na compilaao que o atributo não foi encontrado. Usado somente se alguns dos atributos for uma referência a um atributo de algum relacionamento da entidade.
Conclusão
Essas anotações são uma ferramenta poderosa para garantir unicidade de informação, nos livrando da complexidade e verbosidade de codificação para atingir esse objetivo.
Até mais,
Nenhum comentário:
Postar um comentário