Mapeando Unique Constraint

Existem diversas validações a nível de banco para deixarmos o modelo mais seguro, uma delas é a unique Constraint, que determina uma regra para que o registro seja único. Para que o modelo esteja bem claro a nível de código e para podermos usar validações(ex: javax.validation.ConstraintViolation) é importante que a entidade seja configurada corretamente de … Continue lendo Mapeando Unique Constraint

Mapeando map com valores entidade

Caso tivéssemos a seguinte regra:"Um Produto possui um Fornecedor por Estado", um Map de Estado por Fornecedor seria a solução, segue a baixo como fazer o mapeamento para o Map : @ManyToMany: Mapeamento muitos-para-muitos; @MapKeyEnumerated(EnumType.STRING): Define que a chave do Map é uma Enum e será persistida como String; @MapKeyColumn: Define que o nome do … Continue lendo Mapeando map com valores entidade

Mapeando Maps de String em entidades

Como mapear um Map em JPA ? Segue a baixo um exemplo da entidade Produto que tem uma descrição por língua. Para resolver esse problema mapearemos o atributo descrições como: Map<Locale, String> : @ElementCollection: Define o mapeamento para atributos do tipo "Basic"; fetch = FetchType.EAGER: Faz com que o Map sempre seja carregado quando carregar … Continue lendo Mapeando Maps de String em entidades

Mapeando Lista de tipos básicos em entidades

Caso voce precise persistir em banco uma lista de String ou lista de Integer, como seria esse mapeamento ? como eu armazenaria isso em banco ? Logo a baixo vou mostrar um exemplo de um produto que possui uma lista de códigos, List codigos. Ao adicionar o atributo List codigos na entidade Produto recebemos o … Continue lendo Mapeando Lista de tipos básicos em entidades

Carregando um atributo de entidade após seu carregamento

As vezes temos a necessidade de utilizarmos atributos transients, que são atributos que não são persistidos, e em algumas demandas precisamos guardar um valor inicial vindo do banco nesse campo e por padrão o JPA não irá preencher esse campo, para resolver esse problema temos a anotação @PostLoad que executa o método após o carregamento … Continue lendo Carregando um atributo de entidade após seu carregamento