I'm having trouble validating two entity fields
Order
package com.algaworks.pedidovenda.model;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
@Entity
@Table(name = "pedido")
public class Pedido implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Date dataCriacao;
private String observacao;
private Date dataEntrega;
private BigDecimal valorFrete = BigDecimal.ZERO;
private BigDecimal valorDesconto = BigDecimal.ZERO;
private BigDecimal valorTotal = BigDecimal.ZERO;
private StatusPedido status = StatusPedido.ORCAMENTO;
private FormaPagamento formaPagamento;
private Usuario vendedor;
private Cliente cliente;
private EnderecoEntrega enderecoEntrega;
private List<ItemPedido> itens = new ArrayList<>();
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@NotNull
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "data_criacao", nullable = false)
public Date getDataCriacao() {
return dataCriacao;
}
public void setDataCriacao(Date dataCriacao) {
this.dataCriacao = dataCriacao;
}
@Column(columnDefinition = "text")
public String getObservacao() {
return observacao;
}
public void setObservacao(String observacao) {
this.observacao = observacao;
}
@NotNull
@Temporal(TemporalType.DATE)
@Column(name = "data_entrega", nullable = false)
public Date getDataEntrega() {
return dataEntrega;
}
public void setDataEntrega(Date dataEntrega) {
this.dataEntrega = dataEntrega;
}
@NotNull
@Column(name = "valor_frete", nullable = false, precision = 10, scale = 2)
public BigDecimal getValorFrete() {
return valorFrete;
}
public void setValorFrete(BigDecimal valorFrete) {
this.valorFrete = valorFrete;
}
@NotNull
@Column(name = "valor_desconto", nullable = false, precision = 10, scale = 2)
public BigDecimal getValorDesconto() {
return valorDesconto;
}
public void setValorDesconto(BigDecimal valorDesconto) {
this.valorDesconto = valorDesconto;
}
@NotNull
@Column(name = "valor_total", nullable = false, precision = 10, scale = 2)
public BigDecimal getValorTotal() {
return valorTotal;
}
public void setValorTotal(BigDecimal valorTotal) {
this.valorTotal = valorTotal;
}
@NotNull
@Enumerated(EnumType.STRING)
@Column(nullable = false, length = 20)
public StatusPedido getStatus() {
return status;
}
public void setStatus(StatusPedido status) {
this.status = status;
}
@NotNull
@Enumerated(EnumType.STRING)
@Column(name = "forma_pagamento", nullable = false, length = 20)
public FormaPagamento getFormaPagamento() {
return formaPagamento;
}
public void setFormaPagamento(FormaPagamento formaPagamento) {
this.formaPagamento = formaPagamento;
}
@NotNull
@ManyToOne
@JoinColumn(name = "vendedor_id", nullable = false)
public Usuario getVendedor() {
return vendedor;
}
public void setVendedor(Usuario vendedor) {
this.vendedor = vendedor;
}
@NotNull
@ManyToOne
@JoinColumn(name = "cliente_id", nullable = false)
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
@Embedded
public EnderecoEntrega getEnderecoEntrega() {
return enderecoEntrega;
}
public void setEnderecoEntrega(EnderecoEntrega enderecoEntrega) {
this.enderecoEntrega = enderecoEntrega;
}
@OneToMany(mappedBy = "pedido", cascade = CascadeType.ALL, orphanRemoval = true)
public List<ItemPedido> getItens() {
return itens;
}
public void setItens(List<ItemPedido> itens) {
this.itens = itens;
}
@Transient
public boolean isNovo() {
return getId() == null;
}
@Transient
public boolean isExistente() {
return !isNovo();
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Pedido other = (Pedido) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
}
EnderecoDelivery
package com.algaworks.pedidovenda.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotBlank;
@Embeddable
public class EnderecoEntrega implements Serializable {
private static final long serialVersionUID = 1L;
private String logradouro;
private String numero;
private String complemento;
private String cidade;
private String uf;
private String cep;
@NotBlank @Size(max = 150)
@Column(name = "entrega_logradouro", nullable = false, length = 150)
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
@NotBlank @Size(max = 20)
@Column(name = "entrega_numero", nullable = false, length = 20)
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
@Size(max = 150)
@Column(name = "entrega_complemento", length = 150)
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
@NotBlank @Size(max = 60)
@Column(name = "entrega_cidade", nullable = false, length = 60)
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
@NotBlank @Size(max = 60)
@Column(name = "entrega_uf", nullable = false, length = 60)
public String getUf() {
return uf;
}
public void setUf(String uf) {
this.uf = uf;
}
@NotBlank @Size(max = 9)
@Column(name = "entrega_cep", nullable = false, length = 9)
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
}
Is there a wrong configuration?
This is the image that appears
was to validate all fields.