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

ayuda con projections (criteria)

Estas en el tema de ayuda con projections (criteria) en el foro de Java en Foros del Web. hola a todos, necesito ayuda con lo siguiente: tengo la siguiente consulta con criteria: Código: criteria.add(Expression.ge("idradiologo", Long.valueOf(idradiologo))); criteria.setProjection( Projections.projectionList() .add( Projections.rowCount(), "cantidad" ) .add( Projections.groupProperty("fechaexamen"), ...
  #1 (permalink)  
Antiguo 07/08/2009, 08:55
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta ayuda con projections (criteria)

hola a todos, necesito ayuda con lo siguiente:

tengo la siguiente consulta con criteria:

Código:
criteria.add(Expression.ge("idradiologo", Long.valueOf(idradiologo)));
criteria.setProjection( Projections.projectionList()
  .add( Projections.rowCount(), "cantidad" )
  .add( Projections.groupProperty("fechaexamen"), "fechaexamen" )
  .add( Projections.groupProperty("idradiologo"), "idradiologo" )
);
criteria.add(Expression.between("fechaasignacion",
  this.fechainicio,this.fechatermino));
		
criteria.addOrder(Order.asc("fechaexamen"));

criteria.setResultTransformer(Transformers.aliasToBean
  (ExamenPorRadiologo.class));
esto me arroja siguiente excepción:

Código:
10:49:04,123 WARN  [JDBCExceptionReporter] SQL Error: 1054, SQLState: 42S22
10:49:04,123 ERROR [JDBCExceptionReporter] Unknown column 'y2_' in 'where 
clause'
...
Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 
Unknown column 'y2_' in 'where clause'
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
al parecer me muestra un problema con el alias que le asigna el Projections...

Porque lo que intento hacer con el criteria.add(Expression.ge("idradiologo", Long.valueOf(idradiologo))); es seleccionar todas las filas donde el idradiologo sea distinto de Long.valueOf(idradiologo)

como podria solucionar esto...


Gracias
  #2 (permalink)  
Antiguo 10/08/2009, 05:29
 
Fecha de Ingreso: abril-2009
Mensajes: 82
Antigüedad: 15 años
Puntos: 2
Respuesta: ayuda con projections (criteria)

Buenas:

¿Podrías ponernos toda la función donde se encuentra el criteria, así como los xml de configuración de clases que participan en criteria? Es que así a pelo... no se que decirte.

Saludos.
  #3 (permalink)  
Antiguo 10/08/2009, 09:41
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ayuda con projections (criteria)

Este es el archivo de configuración Examen:

Código:
<hibernate-mapping>
    <class name="cl.vsoft.ris.domain.Examen" table="vsr_examen" >
        <id name="id" type="long">
            <column name="id" />
            <generator class="identity" />
        </id>
        <property name="codexamen" column="codexamen" />
        <property name="idpaciente" column="idpaciente" />
        <property name="nombre" column="nombre" />
        <property name="apellidopaterno" column="apellidopaterno" />
        <property name="apellidomaterno" column="apellidomaterno" />
        <property name="sexo" column="sexo" />
    	<property name="fechanacimiento" column="fechanacimiento" />
             
        <property name="numeroacceso" column="numeroacceso" />
		<property name="fechaexamen" column="fechaexamen" />
		<property name="modalidad" column="modalidad" />
		<property name="descripcion" column="descripcion" />
		<property name="estado" column="estado" />
		<property name="idradiologo" column="idradiologo" />
		<property name="nombreradiologo"  column="nombreradiologo"/>   
		<property name="fechaasignacion" column="fechaasignacion"/>
             
    </class>
</hibernate-mapping>
  #4 (permalink)  
Antiguo 10/08/2009, 09:43
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ayuda con projections (criteria)

Después que hago la consulta utilizo esta clase donde genero la URL de JSON:

Código:
public class ExamenPorRadiologo implements java.io.Serializable,IDomainObject,IJson,ICombobox{

	private static Log _log = LogFactory.getLog(ExamenPorRadiologo.class);
	private Long idradiologo;
	private int cantidad;
	private Date fechaexamen;
	private Long id;
	
	public ExamenPorRadiologo()
	{
		this.idradiologo=Long.valueOf(0);
		this.cantidad=0;
		this.fechaexamen=new Date();
		this.id=Long.valueOf(0);
	}

	public ExamenPorRadiologo(Long idradiologo,int cantidad,Date fechaexamen,Long id)
	{
		this.idradiologo=idradiologo;
		this.cantidad=cantidad;
		this.fechaexamen=fechaexamen;
		this.id=id;
	}
	
	public Long getIdradiologo() {
		return idradiologo;
	}

	public void setIdradiologo(Long idradiologo) {
		this.idradiologo = idradiologo;
	}

	public int getCantidad() {
		return cantidad;
	}

	public void setCantidad(int cantidad) {
		this.cantidad = cantidad;
	}

	public Date getFechaexamen() {
		return fechaexamen;
	}

	public void setFechaexamen(Date fechaexamen) {
		this.fechaexamen = fechaexamen;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}
	
	public String toJson() {
		// TODO Auto-generated method stub
		StringBuilder builder=new StringBuilder();
		builder.append("{");
		builder.append("\"id\":" +this.getId().toString()+",");
		builder.append("\"idradiologo\":"+this.getIdradiologo().toString()+",");
		builder.append("\"fechaexamen\":\""+HelperFormat.getSingleton().FormatDate_custom(this.getFechaexamen(),"yyyy-MM-dd")+"\",");
		builder.append("\"cantidad\":\""+this.getCantidad() +"\"");
		builder.append("}");
		return builder.toString();
	}

	public String getLabel() {
		// TODO Auto-generated method stub
		return this.idradiologo.toString();
	}

	public void Fill(HashMap params) {
		// TODO Auto-generated method stub
		
	}

	public String getKey() {
		// TODO Auto-generated method stub
		return this.getId().toString();
	}

	public String getNombre() {
		// TODO Auto-generated method stub
		return null;
	}
	
}
  #5 (permalink)  
Antiguo 10/08/2009, 20:59
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ayuda con projections (criteria)

el problema era con el alias que creaba el Projections y al momento de intentar hacer un Restriccions o Expression me daba problemas con el alias creado, pero lo solucione con la siguiente linea:

criteria.add(Restrictions.sqlRestriction("idradiol ogo > 0"));

gracias de todas maneras.
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 07:54.