[RESOLVIDO] Problema com createSQLQuery()

Minha aplicação executa o sql , mas não retorna os objetos produtos


  Session session = HibernateUtil.getSessionFactory().openSession();
            SQLQuery query = session.createSQLQuery(sql.toString());
                query.setResultTransformer(Transformers.aliasToBean(Produto.class));

                    query.addScalar("pro_maskcod"      ,Hibernate.STRING);
                    query.addScalar("fsm_codigo"       ,Hibernate.STRING);
                    query.addScalar("fsi_codigo"       ,Hibernate.STRING);
                    query.addScalar("fsp_codigo"       ,Hibernate.STRING);

  produtos = query.list(); // não retorna nada 

obs : Não apresenta erro e mostra o sql no console

Para mostrar a sua query no console vc precisa habilitar no arquivo de propriedades, faça isso para ajudar, assim da para ver o que está rolando na query.
Habilite o parâmetro hibernate.show_sql para true.
Qual o conteúdo da variável “sql” no momento em que vc faz SQLQuery query = session.createSQLQuery(sql.toString()); ???
Att

Quiz dizer que está mostrando a query no console,e que a query está sendo executada perfeitamente .

SQL

  StringBuilder sql = new StringBuilder()
            .append("SELECT DISTINCT ")	                         
            .append("    o.fsm_codigo, ")
            .append("    o.fsi_codigo, ")
            .append("    o.fsp_codigo, ")			
            .append("    o.pro_maskcod ")
            .append(" FROM ")
            .append("   ")
            .append( origem)			
            .append(".proprodutos o JOIN ")
            .append( destino)
            .append(".proprodutos d ")
	    .append(" ON ")
            .append("	o.pro_maskcod = d.pro_maskcod ")
            .append( "WHERE ")
            .append("   (   d.fsm_codigo IS NULL  OR d.fsi_codigo IS NULL  OR d.fsp_codigo IS NULL)")
            .append(" AND ")
            .append("   (   o.fsm_codigo IS NOT NULL  OR o.fsi_codigo IS NOT NULL OR o.fsp_codigo IS NOT NULL)");

Posta o código da classe Produto… tô achando que teu transformer tá se batendo.

Antes estava assim :

package model;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Table(name="PROPRODUTOS")
@Entity
public class Produto implements Serializable{
    
    private String referencia;
    private String fsm;
    private String fsi;
    private String fsp;
    
    @Id
    @Column(name="pro_maskcod")
    public String getReferencia() {
        return referencia;
    }
    @Column(name="fsi_codigo")
    public String getFsi() {
        return fsi;
    }
    @Column(name="fsm_codigo")
    public String getFsm() {
        return fsm;
    }
    @Column(name="fsp_codigo")
    public String getFsp() {
        return fsp;
    }
    public void setFsi(String fsi) {
        this.fsi = fsi;
    }
    public void setFsm(String fsm) {
        this.fsm = fsm;
    }
    public void setFsp(String fsp) {
        this.fsp = fsp;
    }
    public void setReferencia(String referencia) {
        this.referencia = referencia;
    }
    
}

Depois

package model;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Table(name="PROPRODUTOS")
@Entity
public class Produto implements Serializable{
    
    private String pro_maskcod;
    private String fsm_codigo;
    private String fsi_codigo;
    private String fsp_codigo;

    @Id
    public String getPro_maskcod() {
        return pro_maskcod;
    }

    public String getFsi_codigo() {
        return fsi_codigo;
    }

    public String getFsm_codigo() {
        return fsm_codigo;
    }

    public String getFsp_codigo() {
        return fsp_codigo;
    }

    public void setFsi_codigo(String fsi_codigo) {
        this.fsi_codigo = fsi_codigo;
    }

    public void setFsm_codigo(String fsm_codigo) {
        this.fsm_codigo = fsm_codigo;
    }

    public void setFsp_codigo(String fsp_codigo) {
        this.fsp_codigo = fsp_codigo;
    }

    public void setPro_maskcod(String pro_maskcod) {
        this.pro_maskcod = pro_maskcod;
    }
    
 
    
   
}

continua o erro …

Já executou essa query direto no banco para ver se retorna alguma coisa?
Att

retorna !

executando essa query , ela retorna alguns registros sim …

RESOLVIDOOO!

Um dos problemas era a classe produto mesmo , que não estava encontrando os atributos … mais o erro mesmo estava na view , onde tinha um ajax que estava causando conflito no resultado da lista

Valeu Galera !