Bom dia GUJMANÍACOS!!
Bem, tenho uma classe pessoa que contém uma list de EnderecoPessoa e outras lists, como por exemplo Telefone e Email, abaixo segue parte do código:
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
/*
* Aqui eu tenho atributos
* E aí embaixo tenho a list de EnderecoPessoa que disse a vocês
*/
@BatchSize(size = 10)
@OneToMany(cascade = CascadeType.ALL, mappedBy = "pessoa", fetch = FetchType.LAZY)
private List<EnderecoPessoa> enderecoPessoaList = new ArrayList<EnderecoPessoa>();
@OneToMany(cascade = CascadeType.ALL, mappedBy = "pescodigo", fetch = FetchType.LAZY)
private List<Email> emailList = new ArrayList<Email>();
@OneToMany(cascade = CascadeType.ALL, mappedBy = "pescodigo", fetch = FetchType.LAZY)
private List<Telefone> telefoneList = new ArrayList<Telefone>();
/*
* Aqui eu tenho os getters and setters
*/
}
A classe EnderecoPessoa é composta por atributos e métodos que estão logo abaixo:
public class EnderecoPessoa implements Serializable {
private static final long serialVersionUID = 1L;
/*
* Como podem ver eu tenho uma classe que é a PK para esta classe enderecoPessoa
*/
@EmbeddedId
protected EnderecoPessoaPK enderecoPessoaPK = new EnderecoPessoaPK();
@Column(name = "pesnumero", length = 10)
private String pesnumero;
@JoinColumn(name = "pescodigo", referencedColumnName = "pescodigo", nullable = false, insertable = false, updatable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Pessoa pessoa = null;
@JoinColumn(name = "endcodigo", referencedColumnName = "endcodigo", nullable = false, insertable = false, updatable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Endereco endereco = null;
Esta classe EnderecoPessoaPK contém os atributos e métodos listados abaixo:
@Embeddable
public class EnderecoPessoaPK implements Serializable {
@Basic(optional = false)
@Column(name = "pescodigo", nullable = false)
private int pescodigo;
@Basic(optional = false)
@Column(name = "endcodigo", nullable = false)
private int endcodigo;
Aí vem o problema, !
Tento inserir no banco de dados a minha pessoa com as listagens de telefone, email e enderecoPessoa, o JPA + Hibernate [color=red][size=18]NÃO[/size] [/color]insere!
Tento inserir no banco de dados a minha pessoa [color=red][size=18]apenas [/size] [/color]com a listagem de enderecoPessoa, o JPA + Hibernate [color=red][size=18]NÃO[/size] [/color]insere!
Tento inserir no banco de dados a minha pessoa com a listagem de telefone, o JPA + Hibernate insere!
Tento inserir no banco de dados a minha pessoa com as listagens de telefone e email, o JPA + Hibernate insere!
Aí penso que o problema é a maneira como foi gerado o mapeamento da minha classe enderecoPessoaPK, estou certo a pensar isso?
O ERRO que ocorre é:
Como vocês podem ver eu estou recebendo a entrada 0 no lugar de receber o código da pessoa que foi salva pelo Hibernate (Deixei em vermelho em uma letra maior para poderem visualizar melhor).
Não sei o motivo pelo qual ele nao recebe o código da pessoa, pois ja fiz muita coisa e ele nao recebe esse código XEXELENTO (rsrsrrs), vi alguns tópicos aqui no GUJ de outros AMIGOS que tentam fazer algumas modificações no código gerado pelo Netbeans, mas nao obtive sucesso.
Gostaria de saber como posso fazer para que meu enderecoPessoa seja salvo como a classe Telefone e Email que nao ocorrem problemas ao tentar salva-las.
Agradeço a todos que tiveram paciência para ler o post inteiro pois sei que é grande, mas prefiro deixa-lo grande tendo praticamente todas as informações sobre o problema do que ir detalhando tudo conforme perguntarem!
Fiquem na PEACE DO LORD!