Boa tarde amigos do JAva… estou com um pequeno problema com o mapeamento de relacionamento 1 para 1… entre as entidades Consulta e paciente, e entre as entidades Consulta e Medico.
ai vai as entidades, espero que possam me ajudar…
// entidade de consulta ============
package br.com.model;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
@Entity
@Table(name="consulta")
public class Consulta implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name="id_consulta")
private Integer id;
@OneToOne
@JoinColumn(name="id_paciente")
private Paciente paciente;
@OneToOne
@JoinColumn(name="id_medico")
private Medico medico;
@Column(name="especialidade")
private String especialidade;
@Column(name="data_consulta")
@Temporal(javax.persistence.TemporalType.DATE)
private Date data;
// segue os getters e setters abaixo...
// a classe paciente
package br.com.model;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
@Table(name="paciente")
@SuppressWarnings("serial")
public class Paciente implements Serializable {
@Id
@Column(name="id_paciente")
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Column(name = "nome")
private String nome;
@Column(name = "cpf",unique=true)
private Long cpf;
@Column(name = "rg")
private Long rg;
@Column(name = "data_nasc")
@Temporal(TemporalType.DATE)
private Date data_nasc;
@Column(name = "nome_mae")
private String nome_mae;
@Column(name = "nome_pai")
private String nome_pai;
@Column(name = "endereco")
private String endereco;
@Column(name = "numero")
private Integer numero;
@Column(name = "complemento")
private String complemento;
@Column(name = "bairro")
private String bairro;
@Column(name = "nacionalidade")
private String nacionalidade;
@Column(name = "naturalidade")
private String naturalidade;
@Column(name = "uf")
private String uf;
@Column(name = "contato")
private Integer contato;
@Column(name = "email")
private String email;
//mapeamento para relacionamento 1-1 com consulta
@OneToOne(mappedBy="paciente")
@Cascade(CascadeType.ALL)
private Consulta consulta;
// segue os getters e setters dos atributos...
// classe medico
package br.com.model;
import java.io.Serializable;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
@Table(name = "medico")
@SuppressWarnings("serial")
public class Medico implements Serializable {
@Id
@Column(name="id_medico")
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
@Column(name = "nome")
private String nome;
@Column(name = "crm")
private Long crm;
@Column(name = "especialidade")
private String especialidade;
@Column(name = "endereco")
private String endereco;
@Column(name = "numero")
private Integer numero;
@Column(name = "complemento")
private String complemento;
@Column(name = "bairro")
private String bairro;
@Column(name = "residencial")
private Integer residencial;
@Column(name = "celular")
private Integer celular;
@Column(name = "email")
private String email;
//mapeamento do relacionamento 1-1 com consulta ===========
@OneToOne(mappedBy="medico")
@Cascade(CascadeType.ALL)
private Consulta consulta;
o problema que esta dando na saida é este…
Exception in thread “AWT-EventQueue-0” java.lang.ExceptionInInitializerError
at br.com.DAO.HibernateUtilAnnotation.(HibernateUtilAnnotation.java:17)
at br.com.DAO.ConvenioDAO.(ConvenioDAO.java:14)
at br.com.view.PacienteView.(PacienteView.java:29)
at br.com.view.PacienteView$10.run(PacienteView.java:828)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: org.hibernate.AnnotationException: Unknown mappedBy in: br.com.model.Paciente.consulta, referenced property unknown: br.com.model.Consulta.paciente
at org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:129)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at br.com.DAO.HibernateUtilAnnotation.(HibernateUtilAnnotation.java:14)