[RESOLVIDO] Problemas com Insert - JPA2

0 respostas
F

Estou com um problema ao realizar um insert utilizando JPA2

retorna esta msg de erro:

[EL Warning]: 2010-09-09 12:15:34.14--UnitOfWork(29239443)--java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: br.com.model.persistence.entity.Empresa[empresaId=null].
Empresa empresa = EmpresaDAO.getInstance().getById(1);
		
		Usuario usuario = new Usuario();
		
		usuario.setEmpresa(empresa);
		//usuario.set... outros atributos
		
		usuario.getPerfilUsuarioList().add(new PerfilUsuario(usuario.getUsuarioId(), ConstantsPerfil.USUARIO));
		
		UsuarioDAO.getInstance().insert(usuario);

quando eu retiro a linha usuario.getPerfilUsuarioList().add(new PerfilUsuario(usuario.getUsuarioId(), ConstantsPerfil.USUARIO));
ele funciona normalmente,
o estranho é que na exception ele reclama da empresa, sendo que eu estou mexendo na tabela perfil_usuario.

public class Usuario implements Serializable{

@JoinColumn(name = "EMPRESA_ID", referencedColumnName = "EMPRESA_ID")
    @ManyToOne
    private Empresa empresa;
   
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "usuario", orphanRemoval= true)
    private List<PerfilUsuario> perfilUsuarioList;
...

Alguem tem sabe o que esta acontecendo?


O problema é que eu passava apenas o id do usuario, que era nulo :

usuario.getPerfilUsuarioList().add(new PerfilUsuario(usuario.getUsuarioId(), ConstantsPerfil.USUARIO));

mudei para :

PerfilUsuario perfilUsuario = new PerfilUsuario();

perfilUsuario.setUsuario(usuario);
perfilUsuario.getPerfil().setPerfilId(ConstantsPerfil.USUARIO);

usuario.getPerfilUsuarioList().add(perfilUsuario );
Criado 9 de setembro de 2010
Respostas 0
Participantes 1