Código del servlet:
Cita:
Código para buscar la data de Historial:if(accion.equals("LISTAR")){
//capturando datos ingresados en inputs
String CodPaciente=request.getParameter("CodPaciente");
String CodHistorial=request.getParameter("CodHistorial");
//En ambos casos quiero extraer la data de ambas tablas ingresando un único parámetro
if(!CodPaciente.equalsIgnoreCase("")){
PacienteBD pb=new PacienteBD();
Paciente p=pb.buscar(CodPaciente);
HistorialBD hb=new HistorialBD();
Historial h=hb.buscarPaciente(CodPaciente);
if(p!=null){
//Aqui inicio las sesiones
request.getSession().setAttribute("paciente", p);
request.getSession().setAttribute("historial", h);
response.sendRedirect("Registro.jsp");
}else{
request.getSession().setAttribute("x","No existe el usuario");
response.sendRedirect("Mensaje.jsp");
}
}else if(!CodHistorial.equalsIgnoreCase("")){
HistorialBD hb=new HistorialBD();
Historial h=hb.buscar(CodHistorial);
PacienteBD pb=new PacienteBD();
Paciente p=pb.buscarHistorial(CodHistorial);
if(h!=null){
request.getSession().setAttribute("historial", h);
request.getSession().setAttribute("paciente", p);
response.sendRedirect("Registro.jsp");
}else{
request.getSession().setAttribute("x","No existe el usuario");
response.sendRedirect("Mensaje.jsp");
}
}
}
//capturando datos ingresados en inputs
String CodPaciente=request.getParameter("CodPaciente");
String CodHistorial=request.getParameter("CodHistorial");
//En ambos casos quiero extraer la data de ambas tablas ingresando un único parámetro
if(!CodPaciente.equalsIgnoreCase("")){
PacienteBD pb=new PacienteBD();
Paciente p=pb.buscar(CodPaciente);
HistorialBD hb=new HistorialBD();
Historial h=hb.buscarPaciente(CodPaciente);
if(p!=null){
//Aqui inicio las sesiones
request.getSession().setAttribute("paciente", p);
request.getSession().setAttribute("historial", h);
response.sendRedirect("Registro.jsp");
}else{
request.getSession().setAttribute("x","No existe el usuario");
response.sendRedirect("Mensaje.jsp");
}
}else if(!CodHistorial.equalsIgnoreCase("")){
HistorialBD hb=new HistorialBD();
Historial h=hb.buscar(CodHistorial);
PacienteBD pb=new PacienteBD();
Paciente p=pb.buscarHistorial(CodHistorial);
if(h!=null){
request.getSession().setAttribute("historial", h);
request.getSession().setAttribute("paciente", p);
response.sendRedirect("Registro.jsp");
}else{
request.getSession().setAttribute("x","No existe el usuario");
response.sendRedirect("Mensaje.jsp");
}
}
}
Cita:
Código para encontrar la data de Paciente:public Historial buscar(String Codhistorial){
Historial h;
EntityManager em=getEm();
try{
h=em.getReference(Historial.class,Codhistorial);
}catch (Exception e){
h=null;
}
return h;
}
public Historial buscarPaciente(String Codpaciente){
Historial h;
EntityManager em=getEm();
try{
Query q=em.createQuery("SELECT h FROM Historial h WHERE h.codhistorial ='"+Codpaciente+"'");
h=(Historial)q.getSingleResult();
}catch (Exception e){
h=null;
}
return h;
}
Historial h;
EntityManager em=getEm();
try{
h=em.getReference(Historial.class,Codhistorial);
}catch (Exception e){
h=null;
}
return h;
}
public Historial buscarPaciente(String Codpaciente){
Historial h;
EntityManager em=getEm();
try{
Query q=em.createQuery("SELECT h FROM Historial h WHERE h.codhistorial ='"+Codpaciente+"'");
h=(Historial)q.getSingleResult();
}catch (Exception e){
h=null;
}
return h;
}
Cita:
Código extracción de datos de las sesiones:public Paciente buscar(String CodPaciente){
Paciente p;
EntityManager em=getEm();
try{
p=em.getReference(Paciente.class,CodPaciente);
}catch (Exception e){
p=null;
}
return p;
}
public Paciente buscarHistorial(String CodHistorial){
Paciente p;
EntityManager em=getEm();
try{
Query q=em.createQuery("SELECT p FROM Paciente p INNER JOIN Historial h WHERE h.codhistorial ='"+CodHistorial+"'");
//Aqui también tengo un problema porque esta línea parece no estar bien aunque tampoco sé cómo
p=(Paciente)q.getSingleResult();
}catch (Exception e){
p=null;
}
return p;
}
Paciente p;
EntityManager em=getEm();
try{
p=em.getReference(Paciente.class,CodPaciente);
}catch (Exception e){
p=null;
}
return p;
}
public Paciente buscarHistorial(String CodHistorial){
Paciente p;
EntityManager em=getEm();
try{
Query q=em.createQuery("SELECT p FROM Paciente p INNER JOIN Historial h WHERE h.codhistorial ='"+CodHistorial+"'");
//Aqui también tengo un problema porque esta línea parece no estar bien aunque tampoco sé cómo
p=(Paciente)q.getSingleResult();
}catch (Exception e){
p=null;
}
return p;
}
Cita:
<% Paciente p=(Paciente)session.getAttribute("paciente");
String ape=p.getApellidopaciente().toString();
String paterno=ape.substring(0,ape.indexOf(" "));
String materno=ape.substring(paterno.length()+1);
String cod=p.getCodpaciente().toString();
String estado=p.getEstadocivil().toString();
String nom=p.getNombrepaciente().toString();
String numdoc=p.getNumdocumento().toString();
String ocu=p.getOcupacion().toString();
String sexo=p.getSexo().toString();
String tipodoc=p.getTipodocumento().toString();
String fecha=null,dia=null,mes=null;
int year,month,day;
year=p.getFechanacimiento().getYear();
if (year < 1000) year+=1900;
month=p.getFechanacimiento().getMonth()+1;
mes=String.valueOf(month);
if(month<10) mes="0"+mes;
day=p.getFechanacimiento().getDate();
dia=String.valueOf(day);
if (day<10) dia="0"+dia;
fecha=year+"-"+mes+"-"+dia;
String fecnac=fecha;
Historial h=(Historial)session.getAttribute("historial");
String codhist=h.getCodhistorial().toString();
%>
String ape=p.getApellidopaciente().toString();
String paterno=ape.substring(0,ape.indexOf(" "));
String materno=ape.substring(paterno.length()+1);
String cod=p.getCodpaciente().toString();
String estado=p.getEstadocivil().toString();
String nom=p.getNombrepaciente().toString();
String numdoc=p.getNumdocumento().toString();
String ocu=p.getOcupacion().toString();
String sexo=p.getSexo().toString();
String tipodoc=p.getTipodocumento().toString();
String fecha=null,dia=null,mes=null;
int year,month,day;
year=p.getFechanacimiento().getYear();
if (year < 1000) year+=1900;
month=p.getFechanacimiento().getMonth()+1;
mes=String.valueOf(month);
if(month<10) mes="0"+mes;
day=p.getFechanacimiento().getDate();
dia=String.valueOf(day);
if (day<10) dia="0"+dia;
fecha=year+"-"+mes+"-"+dia;
String fecnac=fecha;
Historial h=(Historial)session.getAttribute("historial");
String codhist=h.getCodhistorial().toString();
%>