Utilizando Hibernate: Erro "No data type for node"

Bom dia Pessoal!

Acredito que já passaram por este problema!
Estou abrindo uma sessão e criando uma query, utilizando Hibernate p/ persistência de dados, conforme abaixo:

public void setConstantes() {

   Session sessao = HibernateUtility.getSession();

   String sqlInstituicao = "select Instituicao from FacdbGeral";
   Query queryInstituicao = sessao.createQuery(sqlInstituicao);

   List instituicao = queryInstituicao.list();
   ...
}

Porém, retorna este erro:

   java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.IdentNode 
 \-[IDENT] IdentNode: 'Instituicao' {originalText=Instituicao}

	at org.hibernate.hql.ast.SelectClause.initializeExplicitSelectClause(SelectClause.java:136)
	at org.hibernate.hql.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:440)
	at org.hibernate.hql.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:351)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.afterQuery(HqlSqlBaseWalker.java:126)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:471)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:201)
	at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:151)
	at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:189)
	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:130)
	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:83)
	at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:427)
	at org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:884)
	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:834)
	at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
	at br.smarapd.facdb.service.FacdbManager.setConstantes(FacdbManager.java:73)
	at br.smarapd.facdb.gui.FacdbForm.main(FacdbForm.java:47)
Exception in thread "main" 

A coluna e tabela existem no banco, e a questão do case-sensitive está correta…
Alguém sabe o que está ocorrendo e pode me ajudar?

Obrigado!

tentou?

HibernateUtility.getSession().createQuery(Instituicao from FacdbGeral).list()

Sim! O erro é o mesmo!

mostra o mapeamento de FacdbGeral

Segue o mapeamento (FacdbGeral.hbm.xml):

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 
        Auto-generated mapping file from
        the hibernate.org cfg2hbm engine
-->
    <class name="br.empresa.facdb.dao.FacdbGeral" table="FacdbGeral" schema="dbo" catalog="smarxrlaser">
        <id name="IdInstituicao" type="integer">
            <column name="IdInstituicao" />
            <generator class="increment" />
        </id>
        <property name="Instituicao" type="string">
            <column name="Instituicao" length="50" not-null="true" />
        </property>
        <property name="Separador" type="string">
            <column name="Separador" length="1" not-null="true" />
        </property>
        <property name="Numero_Lote_Inicial" type="integer">
            <column name="Numero_Lote_Inicial" not-null="true" />
        </property>
        <property name="Numero_Lote_Final" type="integer">
            <column name="Numero_Lote_Final" not-null="true" />
        </property>
        <property name="Fac_Local" type="integer">
            <column name="Fac_Local" not-null="true" />
        </property>
        <property name="Fac_Estadual" type="integer">
            <column name="Fac_Estadual" not-null="true" />
        </property>
        <property name="Fac_Nacional" type="integer">
            <column name="Fac_Nacional" not-null="true" />
        </property>
        <property name="Cabecalho_Midia" type="integer">
            <column name="Cabecalho_Midia" not-null="true" />
        </property>
        <property name="Detalhe_Midia" type="integer">
            <column name="Detalhe_Midia" not-null="true" />
        </property>
        <property name="Rodape_Midia" type="integer">
            <column name="Rodape_Midia" not-null="true" />
        </property>
        <property name="Nome_Arq_Midia" type="string">
            <column name="Nome_Arq_Midia" length="200" not-null="true" />
        </property>
        <property name="DrPostagem" type="integer">
            <column name="DrPostagem" not-null="true"/>
        </property>
        <property name="CodAdmin" type="string">
            <column name="CodAdmin" length="20" not-null="true"/>
        </property>
        <property name="NrCartaoPostagem" type="string">
            <column name="NrCartaoPostagem" length="20" not-null="true" />
        </property>
        <property name="CodUnidPostagem" type="string">
            <column name="CodUnidPostagem" length="20" not-null="true" />
        </property>
        <property name="CepUnidPostagem" type="string">
            <column name="CepUnidPostagem" length="20" not-null="true" />
        </property>
        <property name="NroContrato" type="string">
            <column name="NroContrato" length="20" not-null="true" />
        </property>
    </class>    
</hibernate-mapping>

E o da conexão (hibernate.cfg.xml):

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.cglib.use_reflection_optimizer">true</property>
        <property name="hibernate.connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
        <property name="hibernate.connection.password">xxxxxxxxx</property>
        <property name="hibernate.connection.url">jdbc:microsoft:sqlserver://terra\\mar:1600;DatabaseName=smarxrlaser;SelectMethod=cursor</property>
        <property name="hibernate.connection.username">facdb</property>
        <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
        
     	<!-- Condiguracao do c3p0 
		<property name="hibernate.c3p0.max_size">10</property>
		<property name="hibernate.c3p0.min_size">2</property>
		<property name="hibernate.c3p0.timeout">5000</property>		
		<property name="hibernate.c3p0.max_statements">10</property>
		<property name="hibernate.c3p0.idle_test_period">3000</property>
		<property name="hibernate.c3p0.acquire_increment">2</property>	
		-->		
        
        <!-- Configuracao de debug 
		<property name="show_sql">false</property>
       	<property name="use_outer_join">true</property>	
        <property name="hibernate.generate_statistics">false</property>
        <property name="hibernate.use_sql_comments">false</property>
        -->
        
        <mapping resource="Facdb.hbm.xml" />
        
    </session-factory>
</hibernate-configuration>

mizael86, identifiquei o problema!

Foi uma mancada minha…
Ali no final da conexão eu não havia mapeado o “FacdbGeral.hbm.xml” corretamente…

Deu certo trocando:

        <mapping resource="Facdb.hbm.xml" />  

Por:

        <mapping resource="FacdbGeral.hbm.xml" />  

Muito obrigado pela ajuda!

Isso que eu ia falar agora ehhehe, mais blz, parabens :slight_smile: