[RESOLVIDO] createNativeQuery não funciona (parte 2)

Boa tarde!
Estou tentando implementar uma Query Nativa mas estou com dificuldades.
Alguém saberia me dizer o que está errado?
Obs.: O erro ocorre quando entra no for.
Meu repositório:

	@SuppressWarnings("unchecked")
	public List<ImovelImpl> todosCompleta() {
		StringBuilder sb =  new StringBuilder();
		sb.append("select i.observacoes, i.quarto, i.suite from Imovel i "); 
		
		Query query = manager.createNativeQuery(sb.toString());
		
		List<Object> listObj = query.getResultList();
		List<ImovelImpl> listImoveis = new ArrayList<ImovelImpl>();

		for (int i = 0; i < listObj.size();) {
			listImoveis.add(new ImovelImpl((Object[]) listObj.get(i++)));
		}

		return listImoveis;			
	}	

O Erro:

Hibernate: select i.observacoes, i.quarto, i.suite from Imovel i 
0
out 20, 2017 2:58:12 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
ADVERTÊNCIA: #{consultaImoveisBean.consultaGeral}: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
javax.faces.FacesException: #{consultaImoveisBean.consultaGeral}: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
	at javax.faces.component.UIViewAction.broadcast(UIViewAction.java:562)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at br.com.administracao.filter.JPAFilter.doFilter(JPAFilter.java:49)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at br.com.administracao.filter.AutenticacaoFilter.doFilter(AutenticacaoFilter.java:39)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: javax.faces.el.EvaluationException: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	... 35 more
Caused by: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
	at br.com.administracao.implementation.ImovelImpl.<init>(ImovelImpl.java:39)
	at br.com.administracao.repository.Imoveis.todosCompleta(Imoveis.java:104)
	at br.com.administracao.controller.ConsultaImoveisBean.consultaGeral(ConsultaImoveisBean.java:45)
	at br.com.administracao.controller.ConsultaImoveisBean$Proxy$_$$_WeldSubclass.consultaGeral(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
	at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
	at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	... 36 more

out 20, 2017 2:58:12 PM com.sun.faces.context.ExceptionHandlerImpl log
FATAL: JSF1073: javax.faces.FacesException obtido durante o processamento de INVOKE_APPLICATION 5: UIComponent-ClientId=, Message=#{consultaImoveisBean.consultaGeral}: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
out 20, 2017 2:58:12 PM com.sun.faces.context.ExceptionHandlerImpl log
FATAL: #{consultaImoveisBean.consultaGeral}: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
javax.faces.FacesException: #{consultaImoveisBean.consultaGeral}: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:89)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at br.com.administracao.filter.JPAFilter.doFilter(JPAFilter.java:49)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at br.com.administracao.filter.AutenticacaoFilter.doFilter(AutenticacaoFilter.java:39)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: javax.faces.FacesException: #{consultaImoveisBean.consultaGeral}: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
	at javax.faces.component.UIViewAction.broadcast(UIViewAction.java:562)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	... 31 more
Caused by: javax.faces.el.EvaluationException: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	... 35 more
Caused by: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
	at br.com.administracao.implementation.ImovelImpl.<init>(ImovelImpl.java:39)
	at br.com.administracao.repository.Imoveis.todosCompleta(Imoveis.java:104)
	at br.com.administracao.controller.ConsultaImoveisBean.consultaGeral(ConsultaImoveisBean.java:45)
	at br.com.administracao.controller.ConsultaImoveisBean$Proxy$_$$_WeldSubclass.consultaGeral(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
	at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
	at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	... 36 more

Tá tentando converter byte para integer.

Tem coisa errada em ImovelImpl.

Consegue portar o código de ImovelImpl?

O erro está nesta linha?

listImoveis.add(new ImovelImpl((Object[]) listObj.get(i++)));

Meu esquema para efetuar a Query Nativa pede que eu tenha uma Entity sem anotação nenhuma e com o construtor abaixo.

 public class ImovelImpl implements Serializable {
    	
    	private static final long serialVersionUID = 1L;


    	private String observacoes;
    	private Integer quarto;
    	private Integer suite;

    	public ImovelImpl(Object[] param) {
    		setObservacoes((String) param[0]);
    		setQuarto((Integer) param[1]);
    		setSuite((Integer) param[2]);
    	}
    	
    	
    	public Integer getQuarto() {
    		return quarto;
    	}

    	public void setQuarto(Integer quarto) {
    		this.quarto = quarto;
    	}

    	public Integer getSuite() {
    		return suite;
    	}

    	public void setSuite(Integer suite) {
    		this.suite = suite;
    	}
    		
    	public String getObservacoes() {
    		return observacoes;
    	}

    	public void setObservacoes(String observacoes) {
    		this.observacoes = observacoes;
    	}
    }

Em alguma dessas linhas está tentando converter byte pra Integer

public ImovelImpl(Object[] param) {
    		setObservacoes((String) param[0]);
    		setQuarto((Integer) param[1]);
    		setSuite((Integer) param[2]);
    	}

Você tem que debugar esse construtor e ver quais valores chegam até ai

Aqui no seu for

for (int i = 0; i < listObj.size();) {
			listImoveis.add(new ImovelImpl((Object[]) listObj.get(i++)));
		}

Você está chamando aquele construtor.

Por isso deve debugar e ver o que chega lá

Mesmo debugando eu não consigo entender por que o erro.
Ninguém sabe dizer o que estou fazendo de errado?

Fala @adautodasilvalima

Você tem esse construtor para a classe ImovelImpl, certo?

public ImovelImpl(Object[] param) {
    		setObservacoes((String) param[0]);
    		setQuarto((Integer) param[1]);
    		setSuite((Integer) param[2]);
    	}

Quando você faz a sua busca

List<Object> listObj = query.getResultList();
List<ImovelImpl> listImoveis = new ArrayList<ImovelImpl>();
	for (int i = 0; i < listObj.size();) {
		listImoveis.add(new ImovelImpl((Object[]) listObj.get(i++)));
	}

Ela chega entrar nesta linha (pois encontrou algo no banco)??

listImoveis.add(new ImovelImpl((Object[]) listObj.get(i++)));

Se sim, é porque encontrou objetos. Se entrou aqui ele vai instanciar um objeto do tipo ImovelImpl passando um Object como parametro.

Esse Object será recebido na classe ImovelImpl e entrará no método abaixo (Aqui deve ser debugado)

public ImovelImpl(Object[] param) {
    	setObservacoes((String) param[0]);
    	setQuarto((Integer) param[1]);
    	setSuite((Integer) param[2]);
 }

Neste método você deve verificar os valores que virão no object para as posições:

param[1]
param[2]

Um destes está vindo com valor diferente de Integer e está estourando o erro.

Caused by: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer

Fiz tipo: Sai todo mundo da perua e entra de novo.
Retirei todos os campos do select e estou colocando um a um, por enquanto não deu mais erro!
Obrigado!

kkkkkkkkkkkkkkkkkkkk

Ótimo