Bom dia pessoal… to com um problema … to desenvolvendo uma classe prontuario… com as funções cadastrar, buscar, atualizar, excluir… a função de cadastro ja ta tudo ok… mas nao to conseguindo buscar o objeto do banco… a classe prontuario se relaciona com a classe paciente… atraves de um relacionamento 1x1…
Vo postar as classes…
Minha duvida é como fazer para buscar um determinado prontuario do banco atraves do nome do paciente…
//classe prontuario
@Entity
@Table(name = "prontuario")
public class Prontuario implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "id")
private Integer id;
//relacionamento com a tabela paciente...........
@OneToOne
@JoinColumn(name = "id_paciente")
private Paciente id_paciente;
private String altura;
private String peso;
private String historico;
private String data_criacao;
private String ultima_consulta;
private String tipo_sanguineo;
//mapeamento do relacionamento com a classe questionario
@OneToOne(mappedBy="id_prontuario", cascade = CascadeType.ALL)
private Questionario questionario;
//segue os getters e setters ....
classe paciente
@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="id_paciente", cascade = CascadeType.ALL)
private Consulta consulta;
// mapeamento para o relacionamento com prontuario....
@OneToOne(mappedBy="id_paciente", cascade=CascadeType.ALL)
private Prontuario prontuario;
//segue os getters e setters ----------
a classe ProntuarioDAO… que faz as operações com o banco
public class ProntuarioDAO {
Session sessao = HibernateUtilAnnotation.getInstance();
Transaction tx = null;
public void inserir(Prontuario p) throws SQLException {
if (p != null) {
try {
tx = sessao.beginTransaction();
sessao.save(p);
tx.commit();
JOptionPane.showMessageDialog(null, "Prontuario Cadastrado!");
} catch (HibernateException e) {
e.printStackTrace();
tx.rollback();
} finally {
sessao.close();
}
}//fim do if
}//fim do metodo inserir.......
public void excluir(Prontuario p) throws SQLException {
if (p != null) {
try {
tx = sessao.beginTransaction();
sessao.delete(p);
tx.commit();
JOptionPane.showMessageDialog(null, "Prontuario Excluído!");
} catch (HibernateException e) {
e.printStackTrace();
tx.rollback();
} finally {
sessao.close();
}
}// fim do if.........
}// fim do metodo deletar............
public Prontuario obter(Integer pac) throws SQLException {
Prontuario p = null;
if (pac != null) {
Query q = sessao.createQuery("from Prontuario p where p.id_paciente" +
" like :id_paciente");
q.setInteger("id_paciente", pac);
p = (Prontuario) q.uniqueResult();
if(p == null){
JOptionPane.showMessageDialog(null, "Prontuario nao Cadastrado");
}
}
return p;
}// fim do metodo obter............
public void atualizar(Prontuario p) throws SQLException {
if (p != null) {
try {
tx = sessao.beginTransaction();
sessao.update(p);
tx.commit();
JOptionPane.showMessageDialog(null, "Dados do Prontuario Atualizado!");
} catch (HibernateException e) {
e.printStackTrace();
tx.rollback();
} finally {
sessao.close();
}
}//fim do if.........................
}// fim do metodo atualizar...............
public List<Prontuario> listar() {
List<Prontuario> retorno = null;
Query q = sessao.createQuery("from Prontuario");
retorno = q.list();
return retorno;
}//fim do metodo listar................
}
agradeço antecipadamente pela ajuda