2011-09-27 16 views
5

que estoy tratando de crear BO uniéndose a mis clases de entidadCriterios de Hibernate Transformers.aliasToBean no está poblando valores correctos

Criteria criteria = session.createCriteria(Report.class,"r"); 
    criteria 
    .createAlias("template", "t") 
    .createAlias("constituents", "rc") 
    .createAlias("rc.entity", "pe") 
    .createAlias("pe.model", "m") 
    .createAlias("pe.scenario", "s") 
    .setProjection(Projections.projectionList() 
      .add(Projections.property("r.Id"))   
      .add(Projections.property("t.Typ"))     
      .add(Projections.property("pe.bId"))    
      .add(Projections.property("m.model"))    
      .add(Projections.property("s.decay")) 
    ).setMaxResults(100) 
    .addOrder(Order.asc("r.Id")) 
    .setResultTransformer(Transformers.aliasToBean(BO.class)); 

estoy recibiendo 100 BO vacío es decir, todas las propiedades son nulos Mi BO es el siguiente

public class BO implements Serializable { 

private static final long serialVersionUID = 1L; 
private int Id; 
private String Typ; 
private String bId; 
private String model; 
private String decay; 

    Getters and Setters 

.....

Cuando quito la línea aliasToBean y iterar sobre Object [] pude ver los valores correctos descabellada favor, me guía ...

Respuesta

14

Pruebe explícitamente aliasing los ProjectionList artículos para que coincida con los nombres de campo en el grano, de la siguiente manera:

Criteria criteria = session.createCriteria(Report.class,"r"); 
criteria 
.createAlias("template", "t") 
.createAlias("constituents", "rc") 
.createAlias("rc.entity", "pe") 
.createAlias("pe.model", "m") 
.createAlias("pe.scenario", "s") 
.setProjection(Projections.projectionList() 
     .add(Projections.property("r.Id"), "Id")   
     .add(Projections.property("t.Typ"), "Typ")     
     .add(Projections.property("pe.bId"), "bId")    
     .add(Projections.property("m.model"), "model")    
     .add(Projections.property("s.decay"), "decay") 
).setMaxResults(100) 
.addOrder(Order.asc("r.Id")) 
.setResultTransformer(Transformers.aliasToBean(BO.class)); 
Cuestiones relacionadas