Problema Mapeamento Hibernate + Netbeans

Poxa, não sei mais o que fazer já tentei mapeamento por .xml por anotação mas não consigo de modo algum fazer a consulta funcionar nem na consulta HQL.

Meu 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.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/escola</property>
    <property name="hibernate.connection.username">postgres</property>
    <property name="hibernate.connection.password">postgres</property>
    <property name="hibernate.hbm2ddl.auto">update</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.format_sql">true</property>
    <mapping class="sistema.model.Disciplina" package="sistema.model" />
  </session-factory>
</hibernate-configuration>

HibernateUtil.java

package sistema.hibernate;

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;

public class HibernateUtil {

    private static final SessionFactory sessionFactory;
    
    static {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

Minha Classe

package sistema.model;

import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity(name = "disciplina")
@Table(schema = "cadastro", name = "disciplinas")
public class Disciplina
{
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name="id_disciplina", nullable = false, unique = true)
    private Integer intIdDisciplina;
    @Column(name="nome_disciplina", nullable = false, length = 100)
    private String  strNomeDisciplina;

    public Integer getIntIdDisciplina() {
        return intIdDisciplina;
    }

    public void setIntIdDisciplina(Integer intIdDisciplina) {
        this.intIdDisciplina = intIdDisciplina;
    }

    public String getStrNomeDisciplina() {
        return strNomeDisciplina;
    }

    public void setStrNomeDisciplina(String strNomeDisciplina) {
        this.strNomeDisciplina = strNomeDisciplina;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 89 * hash + Objects.hashCode(this.intIdDisciplina);
        hash = 89 * hash + Objects.hashCode(this.strNomeDisciplina);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Disciplina other = (Disciplina) obj;
        if (!Objects.equals(this.strNomeDisciplina, other.strNomeDisciplina)) {
            return false;
        }
        if (!Objects.equals(this.intIdDisciplina, other.intIdDisciplina)) {
            return false;
        }
        return true;
    }
    
    public String toString()
    {
        return intIdDisciplina.toString().concat("-").concat(strNomeDisciplina);
    }
}

Alguém pode me ajudar. Não sei mais o que fazer, sempre fica dizendo que a classe não foi mapeada.

No xml, coloque apenas <mapping class="sistema.model.Disciplina" /> e veja se funciona.

Não deu certo não.

org.hibernate.hql.internal.ast.QuerySyntaxException: Disciplina is not mapped [from Disciplina]
	at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:96)
	at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:120)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:234)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
	at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:126)
	at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:88)
	at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190)
	at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
	at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
	at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1796)
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Disciplina is not mapped
	at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:189)
	at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:109)
	at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:95)
	at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:331)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3633)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3522)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:706)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:562)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
	... 9 more

Posta sua hql

from disciplina

Já tentei
from disciplina as d

Mas não acha o mapeamento.

Pelo log esta como se vc estivesse usando from Disciplina, já que sobreescreveu o nome default.

Resolvido problema.

Bom, depois de muitas mexidas alterei no nome do mapeamento e reiniciei o Netbeans e funcionou.

1 curtida