Tenho duas classes: Pessoa e UsuarioAcesso.
@Entity
public class UsuarioAcesso {
...
@OneToOne(cascade=CascadeType.ALL)
@Valid
@NotNull
private Pessoa pessoa;
...
}
e
@Entity
public class Pessoa {
...
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@NotEmpty(message="O nome é obrigatório")
private String nome;
@NotEmpty(message="O CPF é obrigatório")
@CPF(message="CPF inválido")
@Column(unique=true)
private String cpf;
private Byte foto;
...
}
Estou tentando inserir um UsuarioAcesso. Todos os dados da pessoa e usuário acesso estão setados, porém na inserção tenho o seguinte erro:
javax.validation.ConstraintViolationException: Validation failed for classes [br.edu.ifpi.catce.catracas.model.UsuarioAcesso] during update time for groups [javax.validation.groups.Default, ] List of constraint violations:[ ConstraintViolationImpl{interpolatedMessage='não pode ser nulo', propertyPath=pessoa, rootBeanClass=class br.edu.ifpi.catce.catracas.model.UsuarioAcesso, messageTemplate='{javax.validation.constraints.NotNull.message}'} ]
O detalhe é que mesmo com o erro ainda sim o usuárioAcesso é persistido, bem como a pessoa. O erro aparece, porém tudo é persistido.
Outro detalhe é que se eu tirar o @NotNull do atributo 'pessoa' de UsuarioAcesso, o erro continua e a pessoa não é inserida, apenas o usuário acesso. Sendo que neste caso a minha chave primária pessoa_id na minha tabela usuario_acesso fica nula.
Creio que o problema esteja em @OneToOne(cascade=CascadeType.ALL), porém ainda não encontrei uma solução. Ajuda aí. hehehe =D