Olá galera, sou novo no fórum e esta é minha primeira pergunta.
Criei um relacionamento entre duas classe Pessoa e Endereco usando onetone com persistencia em cascata. Criei uma classe para testar um inset, mas da erro.
Console erro
(Mon May 18 01:46:40 GMT 2009 WARN: Invalid value {1} for server variable named {0}, falling back to sane default of {2}.
Exception in thread “main” java.lang.NullPointerException
at teste.AdicionaPessoaFisica.main(AdicionaPessoaFisica.java:25))
public class Pessoa implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long idPessoa;
private String nome;
@OneToOne(cascade ={CascadeType.PERSIST}, mappedBy=“pessoa”)
private Endereco endereco;
//metodos get e set
}
public class Endereco implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long idEndereco;
@Column(name="DCRUA")
private String rua;
@OneToOne
@JoinColumn(name="idPessoa", referencedColumnName="idPessoa", unique=true)
private Pessoa pessoa;
//metodos get e set
}
public class AdicionaPessoaFisica {
public static void main(String[] args)
{
EntityManagerFactory emf = Persistence.createEntityManagerFactory("testePU");
EntityManager em = emf.createEntityManager();
Pessoa pessoa = new Pessoa();
pessoa.setNome("JOSE ARAGÃO mane");
pessoa.getEndereco().setRua("rua teste");//O console acusa erro nesta linha
em.getTransaction().begin();
try {
em.persist(pessoa);
em.getTransaction().commit();
}catch (Exception e) {
em.getTransaction().rollback();
System.out.println("ERRO: "+ e.getMessage());
}
em.close();
emf.close();
}
}
Acredito que o relacionamento está certo, deve ta faltando alguns detalhe.