Excluir Objetos en Hibernate annotations
Hola tengo una clase llamada Tercero:
La cual esta relaciona con 4 Clases:Comision,Campo,Venta,Compra.
Cuando hago una consulta en hibernate a tercero.
Me realiza las consultas a la tabla, comision,campo,venta y compra.
Yo necesito excluir algunos objetos.
Necesito armar un query de Tercero: que solo me devuelva el objeto Tercero y Venta.
(Todas las ventas del Tercero).
y no ningun objeto mas.
Intente esto pero no me sale.
.createQuery("p.id,p.nombre,p.direccion,p.telefono,p.venta from Tercero p where p.nombre =:pnombre")
.setParameter("pnombre", clienteNombre);
clase Tercero
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedNativeQuery;
import javax.validation.constraints.NotNull;
import org.hibernate.annotations.Cascade;
@Entity
@javax.persistence.Table(name="terceros")
@NamedNativeQuery(name="tercero", query="select idTercero,nombre,domicilio,telefono,idTipo,idComision from terceros where nombre = :nombre", resultClass = Tercero.class)
public class Tercero implements Serializable {
private long id;
private String nombre;
private String direccion;
private String telefono;
private Tipo tipo;
private Comision comision;
private Set<Compra> compra = new HashSet<Compra>(0);
private Set<Venta> venta = new HashSet<Venta>(0);
@Id
@GeneratedValue
@Column(name="idTercero")
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Column(name="nombre")
@NotNull
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
@Column(name="domicilio")
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
@Column(name="telefono")
public String getTelefono() {
return telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.ALL},targetEntity=Tipo.class)
@Cascade( { org.hibernate.annotations.CascadeType.SAVE_UPDATE,org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
@JoinColumn(name="idTipo")
@NotNull
public Tipo getTipo() {
return tipo;
}
public void setTipo(Tipo tipo) {
this.tipo = tipo;
}
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.ALL},targetEntity=Comision.class)
@Cascade( { org.hibernate.annotations.CascadeType.SAVE_UPDATE,org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
@JoinColumn(name="idComision")
public Comision getComision() {
return comision;
}
@NotNull
public void setComision(Comision comision) {
this.comision = comision;
}
@ManyToMany
@JoinTable(
name="compras_terceros",
joinColumns = { @JoinColumn(name = "terceros_idTercero") },
inverseJoinColumns = { @JoinColumn( name ="compras_idCompra" )}
)
public Set<Compra> getCompra() {
return compra;
}
public void setCompra(Set<Compra> compra) {
this.compra = compra;
}
@ManyToMany
@JoinTable(
name="ventas_terceros",
joinColumns = { @JoinColumn(name = "terceros_idTercero") },
inverseJoinColumns = { @JoinColumn( name ="ventas_idVenta" )}
)
public Set<Venta> getVenta() {
return venta;
}
public void setVenta(Set<Venta> venta) {
this.venta = venta;
}
}
<code>
a ver si alguien me puede orientar para realizar consultas que excluyan objetos que no me son necesarios.?
- jamilMX's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
Entonces arma tu consulta
Entonces arma tu consulta como si fuera SQL, y mapeas las propiedades a tu objeto como si lo hicieras con JDBC
Nota: tienes
No tendría que ser:
Puesto que tu consulta está en HQL y no en SQL?