Fala feras
eu montei uma query no meu DAO para retornar algumas informações através da data que foi digitada
acontece que quando eu deixo a linha onde vai pegar a data que o usuario digitou não retorna nenhuma informação
e quando eu comento a linha retorna varios informações tentei rodar a query na mão e tb não foi mais quando
add a função LEFT na query ela retornou os dados corretos mas quando coloco a alteração na minha query Hql no
DAO da erro na função LEFT alguém sabe como faço a alteração na minha query Hql ?
Quando add essa linha da erro na minha query Hql do DAO
sql.append("and LEFT(s.dtDevolucaoSupervisor,10)= '" + new SimpleDateFormat("yyyy-MM-dd").format(data) + "'" );
Quando add essa linha não retorna nenhuma informação
sql.append("and s.dtDevolucaoSupervisor = '" + new SimpleDateFormat("yyyy-MM-dd").format(data) + "'" );
StringBuilder sql = new StringBuilder("from UsuarioTO a inner join fetch a.associacoesSupervisor as s ");
sql.append("where a.codBarras like 'S-%' and a.estado = 1 ");
// aqui e onde eu add a linha para pegar a data
         
        
          
        
           
           
           
         
         
            
            
          
       
      
        
        
          Post as classes UsuarioTO e a classe desse relacionamento: associacoesSupervisor
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          a parte da classe usuarioTO
@Enumerated(EnumType.ORDINAL)
	@Column(name="ID_SITUACAO_CADASTRAL")
	private SituacaoCadastral estado;
	
	@OneToMany(mappedBy="usuarioCadastro", fetch=FetchType.LAZY)
	@OrderBy("dtCadastroSistema")
	private Set<AssociacaoTO> associacoesCadastro = new HashSet<AssociacaoTO>();
	
	
	@OneToMany(mappedBy="usuarioSupervisor", fetch=FetchType.LAZY)
	@OrderBy("dtCadastroSupervisor")
	private Set<AssociacaoTO> associacoesSupervisor = new HashSet<AssociacaoTO>();
	
	@OneToMany(mappedBy="usuarioOperador", fetch=FetchType.LAZY)
	@OrderBy("dtCadastroOperador")
	private Set<AssociacaoTO> associacoesOperador = new HashSet<AssociacaoTO>();
	
aqui associacaoTO com a coluna dtDevolucaoSupervisor
	@Column(name="DT_DEVOLUCAO_SUPERVISOR")
	private Date dtDevolucaoSupervisor;
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Faz com setParameter… Não precisa utilizar DateFormat…
...
sql.append("and s.dtDevolucaoSupervisor = :data'" );
Query query = session.createQuery(sql.toString());
query.setParameter("data", data);
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          então brother fiz assim mais esta dando erro ainda tem algo que fiz de errado ?
StringBuilder sql = new StringBuilder("from UsuarioTO a inner join fetch a.associacoesSupervisor as s ");
			sql.append("where a.codBarras like 'S-%' and a.estado = 1 ");	
			sql.append("and s.dtDevolucaoSupervisor = :'data'" );  
			Query query = session.createQuery(sql.toString());
			query.setParameter("data", data);
			resultado = query.list();
erro
ERROR [STDERR] org.hibernate.hql.ast.QuerySyntaxException: expecting IDENT, found ''data'' near line 1, column 173 [from com.oesia.parkingrio.usuario.to.UsuarioTO a inner join fetch a.associacoesSupervisor as s where a.codBarras like 'S-%' and a.estado = 1 and s.dtDevolucaoSupervisor = :'data']
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          sim… Tire as aspas do :data.
:qualquerCoisa é apenas um identificador… semelhante ao ?.
StringBuilder sql = new StringBuilder("from UsuarioTO a inner join fetch a.associacoesSupervisor as s ");  
sql.append("where a.codBarras like 'S-%' and a.estado = 1 ");     
sql.append("and s.dtDevolucaoSupervisor = :data" );    
Query query = session.createQuery(sql.toString());  
query.setParameter("data", data);  
resultado = query.list();
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          ai Brother finalmente deu certo eu alterei e vou postar aqui para a galera que tiver o mesmo problema
valeu pela ajuda
StringBuilder sql = new StringBuilder("from UsuarioTO a inner join fetch a.associacoesSupervisor as s ");
			sql.append("where a.codBarras like 'S-%' and a.estado = 1 ");	
			sql.append("and s.dtDevolucaoSupervisor BETWEEN :dtInicial AND :dtFinal" );
			Query query = session.createQuery(sql.toString());
			Date dtInicial = (Date)data.clone();
			dtInicial.setHours(00);
			dtInicial.setMinutes(00);
			dtInicial.setSeconds(00);
			Date dtFinal = (Date)data.clone();
			dtFinal.setHours(23);
			dtFinal.setMinutes(59);
			dtFinal.setSeconds(59);
			query.setParameter("dtInicial", dtInicial);
			query.setParameter("dtFinal", dtFinal);
			resultado = query.list();