Foros del Web » Programación para mayores de 30 ;) » Java »

jsf + jpa consultas multitabla

Estas en el tema de jsf + jpa consultas multitabla en el foro de Java en Foros del Web. hola a todos los amigos de foros del web estoy haciendo un proyecto en jsf utilizando JPA persistencia con conexion a base de datos MYSQL ...
  #1 (permalink)  
Antiguo 13/04/2013, 10:24
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
De acuerdo jsf + jpa consultas multitabla

hola a todos los amigos de foros del web

estoy haciendo un proyecto en jsf utilizando JPA persistencia con conexion a base de datos MYSQL en IDE netbeans 7.2 Mi pregunta: ¿Como hago para realizar una consulta multitabla? para que me salga en pantalla el dato de la tabla que estoy consultando ya que el netbeans me realiza la consulta pero solo con el ID de la tabla. ejemplo: en vez de que me salga el nombre del cliente me sale el ID del cliente
cliente = 1.

agradezco la ayuda, cualquier opinion es importante y me sera de ayuda gracias
  #2 (permalink)  
Antiguo 14/04/2013, 12:56
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina
Mensajes: 111
Antigüedad: 12 años, 1 mes
Puntos: 12
Respuesta: jsf + jpa consultas multitabla

Pero deberias postear un toke de codigo no se entiende o por lo menos yo,
Si usas JPA (o cualquier ORM), la idea es que hagas tu modelo de tablas desde las clases java o sea a partir de las relaciones que tengan los POJOs de tu aplicacion ,entonces si tenes por ejemplo la clase Persona y la clase DatosPersona donde Persona tiene una asociacion de uno a uno con datosPersona y este posee por ej el dni, para obtener una persona por su dni

"from Persona persona WHERE persona.datosPersona.dni = :dni"

eso seria un JOIN entre Persona y DatosPersona

donde decis que netbeans te hace la consulta no entiendo netbeans no ac consultas es un IDE te sirve para desarrollar.

Podes ser mas especifico ?

Saludos espero sirva.
  #3 (permalink)  
Antiguo 15/04/2013, 13:42
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 0
De acuerdo Respuesta: jsf + jpa consultas multitabla

si me equivoque en lo que dije el codigo es el siguiente tengo un entity class cliente

@Entity
@Table(name = "cliente")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Cliente.findAll", query = "SELECT c FROM Cliente c"),
@NamedQuery(name = "Cliente.findByClieId", query = "SELECT c FROM Cliente c WHERE c.clieId = :clieId"),
@NamedQuery(name = "Cliente.findByClieCc", query = "SELECT c FROM Cliente c WHERE c.clieCc = :clieCc"),
@NamedQuery(name = "Cliente.findByClieNomb", query = "SELECT c FROM Cliente c WHERE c.clieNomb = :clieNomb"),
@NamedQuery(name = "Cliente.findByClieApel", query = "SELECT c FROM Cliente c WHERE c.clieApel = :clieApel"),
@NamedQuery(name = "Cliente.findByClieDire", query = "SELECT c FROM Cliente c WHERE c.clieDire = :clieDire"),
@NamedQuery(name = "Cliente.findByClieTel", query = "SELECT c FROM Cliente c WHERE c.clieTel = :clieTel"),
@NamedQuery(name = "Cliente.findByClieCel", query = "SELECT c FROM Cliente c WHERE c.clieCel = :clieCel"),
@NamedQuery(name = "Cliente.findByClieMail", query = "SELECT c FROM Cliente c WHERE c.clieMail = :clieMail")})
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "clie_id")
private Integer clieId;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 10)
@Column(name = "clie_cc")
private String clieCc;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "clie_nomb")
private String clieNomb;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "clie_apel")
private String clieApel;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 50)
@Column(name = "clie_dire")
private String clieDire;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 10)
@Column(name = "clie_tel")
private String clieTel;
@Size(max = 10)
@Column(name = "clie_cel")
private String clieCel;
@Size(max = 50)
@Column(name = "clie_mail")
private String clieMail;
@JoinColumn(name = "emple_id", referencedColumnName = "emple_id")
@ManyToOne(optional = false)
private Empleado empleado;
@JoinColumn(name = "barr_id", referencedColumnName = "barr_id")
@ManyToOne(optional = false)
private Barrio barrio;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "cliente")
private List<Venta> ventaList;

public Cliente() {
}

public Cliente(Integer clieId) {
this.clieId = clieId;
}

public Cliente(Integer clieId, String clieCc, String clieNomb, String clieApel, String clieDire, String clieTel) {
this.clieId = clieId;
this.clieCc = clieCc;
this.clieNomb = clieNomb;
this.clieApel = clieApel;
this.clieDire = clieDire;
this.clieTel = clieTel;
}

public Integer getClieId() {
return clieId;
}

public void setClieId(Integer clieId) {
this.clieId = clieId;
}

public String getClieCc() {
return clieCc;
}

public void setClieCc(String clieCc) {
this.clieCc = clieCc;
}

public String getClieNomb() {
return clieNomb;
}

public void setClieNomb(String clieNomb) {
this.clieNomb = clieNomb;
}

public String getClieApel() {
return clieApel;
}

public void setClieApel(String clieApel) {
this.clieApel = clieApel;
}

public String getClieDire() {
return clieDire;
}

public void setClieDire(String clieDire) {
this.clieDire = clieDire;
}

public String getClieTel() {
return clieTel;
}

public void setClieTel(String clieTel) {
this.clieTel = clieTel;
}

public String getClieCel() {
return clieCel;
}

public void setClieCel(String clieCel) {
this.clieCel = clieCel;
}

public String getClieMail() {
return clieMail;
}

public void setClieMail(String clieMail) {
this.clieMail = clieMail;
}

public Empleado getEmpleado() {
return empleado;
}

public void setEmpleado(Empleado empleado) {
this.empleado = empleado;
}

public Barrio getBarrio() {
return barrio;
}

public void setBarrio(Barrio barrio) {
this.barrio = barrio;
}

@XmlTransient
public List<Venta> getVentaList() {
return ventaList;
}

public void setVentaList(List<Venta> ventaList) {
this.ventaList = ventaList;
}

@Override
public int hashCode() {
int hash = 0;
hash += (clieId != null ? clieId.hashCode() : 0);
return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Cliente)) {
return false;
}
Cliente other = (Cliente) object;
if ((this.clieId == null && other.clieId != null) || (this.clieId != null && !this.clieId.equals(other.clieId))) {
return false;
}
return true;
}

@Override
public String toString() {
return "modelo.Cliente[ clieId=" + clieId + " ]";
}

}

y un managed bean llamado clientecontroller

y tengo una tabla en donde quiero mostrar el resultado

<p:dataTable value="#{clienteController.items}" var="item" style="width: 600px; text-transform: uppercase;">
<p:column style="text-align: center">
<f:facet name="header">
<h:outputText value="#{bundle.ListClienteTitle_clieId}"/>
</f:facet>
<h:outputText value="#{item.clieId}"/>
</p:column>
<p:column style="text-align: center">
<f:facet name="header">
<h:outputText value="#{bundle.ListClienteTitle_clieCc}"/>
</f:facet>
<h:outputText value="#{item.clieCc}"/>
</p:column>
<p:column style="text-align: center">
<f:facet name="header">
<h:outputText value="#{bundle.ListClienteTitle_clieNomb}"/>
</f:facet>
<h:outputText value="#{item.clieNomb}"/>
</p:column>
<p:column style="text-align: center">
<f:facet name="header">
<h:outputText value="#{bundle.ListClienteTitle_clieApel}"/>
</f:facet>
<h:outputText value="#{item.clieApel}"/>
</p:column>
</p:dataTable>

entones yo necesito también mostrar datos de otra tabla de la base de datos ejemplo factura pero solo me muestra el campo de las relación entones necesito mostrar en la factura los datos del cliente en una misma tabla para poderlos listar-..... gracias por su ayuda ..
  #4 (permalink)  
Antiguo 15/04/2013, 23:01
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina
Mensajes: 111
Antigüedad: 12 años, 1 mes
Puntos: 12
Respuesta: jsf + jpa consultas multitabla

disculpa no entiendo la parte que decis "pero solo me muestra el campo de las relación"
pero cual seria la relacion con factura es decir: factura->cliente ò cliente->factura

supongo que desde factura llegas hasta cliente por lo que veo en cliente
si tuvieces en factura un cliente en el dataTable haces item.cliente.nombre ponele.

igual sigo sin entender el problema

Saludos

Etiquetas: jpa, jsf, multitabla, netbeans
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:06.