This is the class, and no I haven´t tried to order by other field....I will try as soon as I can.
Code:
package com.telvent.padron.bi.territorio.model;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.ForeignKey;
import com.telvent.padron.bi.comun.DatosControlTroncalActual;
import com.telvent.padron.bi.comun.IEsHistorico;
import com.telvent.padron.bi.comun.ITieneHistorico;
import com.telvent.padron.bi.territorio.comun.ViviendaLocalBase;
import com.telvent.padron.comun.ILocalizable;
import com.thoughtworks.xstream.annotations.XStreamAlias;
@Entity
@Table( name="TRR_HUECO")
@XStreamAlias("ViviendaLocal")
public class ViviendaLocal extends ViviendaLocalBase implements Serializable,ITieneHistorico, ILocalizable{
/*ATRIBUTOS*/
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* Código interno de identificación única del registro.
* Número de Identificación del hueco. El NIDEN se crea pero nunca se modifica.
* ([P]rimary [K]ey). Secuencial.
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "NIDEN_HUECO")
private Integer id;
protected DatosControlTroncalActual datosControl = new DatosControlTroncalActual();
/**
* NIDEN del texto normlizado de vivienda.
* [F]oreing [K]ey de enlace con la tabla de Valor Válido de texto normalizado de vivienda
* (TRR_TEXTO_NORM_HUECO).
*/
@ManyToOne
@JoinColumn(name="NIDEN_TXT_NOR_VIV")
@ForeignKey(name="FK_HUECO_TNV")
@Cascade(org.hibernate.annotations.CascadeType.LOCK)
private TextoNormalizadoViviendaLocal textoNormalizadoViviendaLocal;
@OneToMany(mappedBy="viviendaLocalActual",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@OrderBy("id DESC")
@Cascade(org.hibernate.annotations.CascadeType.LOCK)
private List<ViviendaLocalHistorico> viviendaLocalHistoricos;
/**
* NIDEN del Numerero al que pertenece el hueco (vivienda o local).
* [F]oreing [K]ey de enlace con la tabla troncal de Numerero (TRR_NUMERERO)
*/
@ManyToOne
@JoinColumn(name="NIDEN_APP", nullable=false)
@ForeignKey(name="FK_HUECO_NUMERERO")
@Cascade(org.hibernate.annotations.CascadeType.LOCK)
private Numerero numerero;
@Column(name = "CODIGO_HUECO", nullable=true)
private Integer codHueco;
/*CONSTRUCTORES*/
public Numerero getNumerero() {
return numerero;
}
public void setNumerero(Numerero numerero) {
this.numerero = numerero;
}
public ViviendaLocal(){
}
/*METODOS PUBLICOS*/
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public TextoNormalizadoViviendaLocal getTextoNormalizadoViviendaLocal() {
return textoNormalizadoViviendaLocal;
}
public void setTextoNormalizadoViviendaLocal(
TextoNormalizadoViviendaLocal textoNormalizadoViviendaLocal) {
this.textoNormalizadoViviendaLocal = textoNormalizadoViviendaLocal;
}
public List<ViviendaLocalHistorico> getViviendaLocalHistoricos() {
return viviendaLocalHistoricos;
}
public void setViviendaLocalHistoricos(
List<ViviendaLocalHistorico> viviendaLocalHistoricos) {
this.viviendaLocalHistoricos = viviendaLocalHistoricos;
}
public void cargarDeActual(ITieneHistorico alife) {
// TODO Auto-generated method stub
}
/*public Set<Poblacion> getPoblaciones() {
return poblaciones;
}
public void setPoblaciones(Set<Poblacion> poblaciones) {
this.poblaciones = poblaciones;
}*/
public void cargarDesdeHistorico(IEsHistorico historico) {
ViviendaLocalHistorico vl = (ViviendaLocalHistorico)historico;
super.setCodigoReferenciaDgc(vl.getCodigoReferenciaDgc());
super.setFechaGrabacionCierre(vl.getFechaGrabacionCierre());
super.setFechaGrabacionAyto(vl.getFechaGrabacionAyto());
this.setPlanta(vl.getPlanta());
this.setPuerta(vl.getPuerta());
this.setTextoNormalizadoViviendaLocal(vl.getTextoNormalizadoViviendaLocal());
this.setTipo(vl.getTipo());
this.setTipoColectivo(vl.getTipoColectivo());
this.setTipoLocal(vl.getTipoLocal());
this.setNumerero(vl.getNumerero());
}
public DatosControlTroncalActual getDatosControl() {
return datosControl;
}
public void setDatosControl(DatosControlTroncalActual datosControl) {
this.datosControl = datosControl;
}
public List<ViviendaLocalHistorico> getHistorico() {
return this.viviendaLocalHistoricos;
}
public void setHistorico(List col) {
this.viviendaLocalHistoricos = col;
}
public void addHistorico(ViviendaLocalHistorico viviendaLocalHistorico)
{
this.getHistorico().add(viviendaLocalHistorico);
viviendaLocalHistorico.setViviendaLocalActual(this);
}
public Integer getNumPersonas(Date fechaDada){
//TO DO implementar el método de recuento de personas en hueco
if(fechaDada == null)
return 0;
else
return 10;
}
public Integer getCodHueco()
{
Integer cod=codHueco;
if(cod==null)
cod=id;
return codHueco;
}
public void setCodHueco(Integer codHueco)
{
this.codHueco = codHueco;
}
/**
* Constructs a <code>String</code> with all attributes
* in name = value format.
*
* @return a <code>String</code> representation
* of this object.
*/
public String toString()
{
final String TAB = " ";
StringBuilder retValue = new StringBuilder();
retValue.append("ViviendaLocal ( ")
.append(super.toString()).append(TAB)
.append("id = ").append(this.id).append(TAB)
.append("textoNormalizadoViviendaLocal = ").append(this.textoNormalizadoViviendaLocal).append(TAB)
.append("codHueco = ").append(this.codHueco).append(TAB)
.append("datosControl = ").append(this.datosControl).append(TAB)
.append(" )");
return retValue.toString();
}
}