[Resolvido]Mapeamento de Relacionamento 1-1.. problema

3 respostas
rafaelctork

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…

SO PRA DEIXAR REGISTRADO EU JA LI UMA MIL VEZES… AKELA APOSTILA DE HIBERNATE ANNOTATION QUE TODO MUNDO TEM … ACREDITO QUE SEJA A MELHOR…ENTAO ESTOU PROCURANDO UMA SOLUÇÃO

import java.io.Serializable;
import javax.persistence.*;

@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;

// segue os getters e setters da classe...
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

@Entity
@Table(name="consulta")
@SuppressWarnings("serial")
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 da classe...
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 da classe.......

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)

valeu galera… agradeço desde jah…

3 Respostas

jidlafe

Cara o nome do teu pacote ou caminho da classe está correto?

Note:

rafaelctork

Pow cara… acredito que sim… br.com.model.Consulta.paciente… br.com.model… é o pacote q quando as classes de identidade… e Consulta é o nome da classe… e paciente… é o campo que to pegando como chave estrangeira…

jidlafe

Alguma solução.
Assim que você conseguir, atualize o titulo da mensagem inicial como [Resolvido] no final.

ok? :wink:

Criado 31 de outubro de 2009
Ultima resposta 1 de nov. de 2009
Respostas 3
Participantes 2