Hibernate + Banco de dados Fixo... e Criação de novas tabelas usando Anotações... pode?

Olá pessoal, tenho um banco de dados já fixo, com algumas tabelas. Mais da um NullPointer quando vou apenas listar essa tabela em um dataTable… o código está assim.

Classe Model

public class Onibus implements  Serializable{
    
    
    
    private String numero;
    private String titulo;
    private String empresa;
    private String saida;
    private Integer intervalo_medio;
    private String ultimo_horario;
    private String madrugada;
    ///mais variaveis e Get's and Set's e eguals/Hashcode gerados

Meu Bean

@ManagedBean(name="onibusBean")
@RequestScoped
public class OnibusBean {
    
    private Onibus onibus = new Onibus();
    private List<Onibus> lista;

    
    
    public List<Onibus> getLista() {
		if (this.lista == null) {
			OnibusRN onibusRN = new OnibusRN();
			this.lista = onibusRN.listar();
		}
		return this.lista;
	}
    
    public Onibus getOnibus() {
        return onibus;
    }

    public void setOnibus(Onibus onibus) {
        this.onibus = onibus;
    }
   
}

HibernateDAO

public class OnibusDAOHibernate implements OnibusDAO {

    private Session session;

    public void setSession(Session session) {
        this.session = session;
    }

    @Override
    public List<Onibus> listar() {
        return this.session.createCriteria(Onibus.class).list();
    }
}

Minha pagina…

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
    <ui:decorate template="/tema/padrao.xhtml">
        <ui:define name="centro">
             <h:form id="listagem">
            <p:dataTable  value="#{onibusBean.lista}" var="onibus"
                         rendered="#{!empty onibusBean.lista}">
                
                <p:column headerText="Numero">  
            <h:outputText value="#{onibus.numero}" />  
              </p:column>  
                
                <p:column headerText="Titulo">  
                    <h:outputText value="#{onibus.titulo}" />  
              </p:column>  
                
                 <p:column headerText="Empresa">  
                    <h:outputText value="#{onibus.empresa}" />  
              </p:column> 
            </p:dataTable>
        </h:form>
        </ui:define>
    </ui:decorate>
</html>

Meu erro é esse…

java.lang.NullPointerException
	at onibus.OnibusRN.listar(OnibusRN.java:19)
	at bean.OnibusBean.getLista(OnibusBean.java:30)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:87)
	at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
	at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
	at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:47)
	at org.apache.el.parser.AstNot.getValue(AstNot.java:44)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:413)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1750)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:57)
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:45)
	at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:51)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at util.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:32)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)

Essa classe não está mapiada no hibernate.cfg.xml porque eu não quero que o Hibernate gera uma tabela pra mim…

O que eu poderia fazer nessa situação ?

A estrutura da minha tabela está assim…

CREATE TABLE [onibus] (

  [numero] VARCHAR(10), 

  [titulo] varchar(100), 

  [empresa] varchar(100), 

  [saida] varchar(10), 

  [intervalo_medio] integer, 

  [ultimo_horario] varchar(10), 

  [madrugada] char(1), 

  [horario_madrugada] TEXT, 

  [terminal] varchar(50), 

  [frota] integer, 

  [numero_viajens] integer, 

  CONSTRAINT [] PRIMARY KEY ([numero]));

Poste a classe OnibusRN tb

Ela ta assim…

public class OnibusRN {

private OnibusDAO onibusDAO;

public List<Onibus> listar() {
	return this.onibusDAO.listar();
}

}

Faz um teste, coloque assim:

[code]
public class OnibusRN {

  private OnibusDAO onibusDAO; 

  public OnibusRN() {
       this.onibusDAO = new OnibusDAO(); 
  }

  public List<Onibus> listar() { 

         return this.onibusDAO.listar(); 
   } 

}[/code]

Meu OnibusDAO e apenas uma interface…

public interface OnibusDAO {
    
    public List<Onibus> listar();
    
}

Coloquei como você fez mais aconteceu o mesmo erro

Entao teste com OnibusDAOHibernate, tire a instanciacao da interface e teste com a classe daohibernate. Desculpe, to meio na pressa, inclusive to saindo agora. hehehehe…flw.