Olá Pessoal,
Tenho uma classe Usuario e uma classe PerfilUsuario com relação um usuario pode ter muitos perfils
Acontece que quando insiro um novo usuario gostaria que seus perfis fossem adicionados automaticamente, porém estou recebendo um erro dizendo que minha chave estrangeira na tabela perfil não pode ser null. Na verdade ela teria que ser o id do usuario mas infelizmente eu devo estar esquecendo de alguma anotação:
Antes de tudo eu sei que posso inserir o usuario e descobrir o id dele e inserir na tabela perfil (no braço) mas eu gostaria de uma maneira mais automatica na qual tenho certeza que o hibernate consegue fazer e que fosse mais elegante.
main:
colecaoPerfilUsuario.add(perfilUsuario);
usuario.setPerfilUsuario(colecaoPerfilUsuario);
hibernate.salva(usuario);
Usuario
@Entity(name = "tabUsuario")
public class Usuario {
@Id
@GeneratedValue
@Column(name = "idUsuario")
private int idUsuario;
@Column(name = "loginUsuario")
private String login;
@Column(name = "senhaUsuario")
private String senha;
@OneToMany(targetEntity = PerfilUsuario.class, mappedBy = "usuario", cascade = CascadeType.ALL)
private Collection<PerfilUsuario> perfilUsuario;
@Column(name = "situacaoUsuario")
private String situacao;
//ggas
PerfilUsuario
@Entity(name = "tabPerfilUsuario")
public class PerfilUsuario {
@Id
@GeneratedValue
@Column(name = "idPerfilUsuario")
private int idPerfil;
@Column(name = "nomePerfilUsuario")
private String nome;
@ManyToOne
@JoinColumn(name = "idUsuario", insertable = true, updatable = true)
private Usuario usuario;
//ggas
Na tabela usuario tenho:
idUsuario como chave primaria
outros campos como no bean
Na tabela Perfil usuario tenho:
idPerfilUsuario (chave primaria)
idUsuario (chave estrangeira)
Antecipadamente agradeço o tempo desperdiçado na leitura e na possível resposta
ainda vou arrumar isso mas por enquanto tudo bem…