Hola gente. Tengo un error al ejecutar una consulta "HQL".
Primero de todo os presento
mi escenario.
Mi estructura de archivos es la siguiente:
Contenido de mi "HibernateUtil.java":
Código Java:
Ver originalimport org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
/**
* Hibernate Utility class with a convenient method to get Session Factory
* object.
*
* @author John Doe
*/
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();
// Log the exception.
System.
err.
println("Initial SessionFactory creation failed." + ex
); }
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Contenido de mi Hibernate.reveng.xml:
Código XML:
Ver original<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd">
<hibernate-reverse-engineering>
<schema-selection match-catalog="elecciones"/>
<table-filter match-name="partidos"/>
<table-filter match-name="personas"/>
</hibernate-reverse-engineering>
Contenido de mi hibernate.cfg.xml:
Código XML:
Ver original<?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.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/elecciones</property>
<property name="hibernate.connection.username">root</property>
<mapping resource="hr/Personas.hbm.xml"/>
<mapping resource="hr/Partidos.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Contenido de Partidos.java:
Código Java:
Ver originalpackage hr;
// Generated 01-jun-2015 18:58:02 by Hibernate Tools 4.3.1
/**
* Partidos generated by hbm2java
*/
public Partidos() {
}
public Partidos
(String partido
) { this.partido = partido;
}
this.partido = partido;
this.presupuesto = presupuesto;
this.ideologia = ideologia;
}
return this.partido;
}
public void setPartido
(String partido
) { this.partido = partido;
}
return this.presupuesto;
}
public void setPresupuesto
(Integer presupuesto
) { this.presupuesto = presupuesto;
}
public String getIdeologia
() { return this.ideologia;
}
public void setIdeologia
(String ideologia
) { this.ideologia = ideologia;
}
}
Contenido de Partidos.hbm.xml:
Código XML:
Ver original<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated 01-jun-2015 18:58:02 by Hibernate Tools 4.3.1 -->
<hibernate-mapping>
<class name="hr.Partidos" table="partidos" catalog="elecciones" optimistic-lock="version">
<id name="partido" type="string">
<column name="PARTIDO" length="30" />
<generator class="assigned" />
</id>
<property name="presupuesto" type="java.lang.Integer">
<column name="PRESUPUESTO" />
</property>
<property name="ideologia" type="string">
<column name="IDEOLOGIA" length="30" />
</property>
</class>
</hibernate-mapping>
¿Cuando surge el problema?
Cuando intento ejecutar esta básica consulta HQL.
Cuando la ejecuto me sale el siguiente error.
Código:
org.hibernate.hql.internal.ast.QuerySyntaxException: Partidos is not mapped [from Partidos]
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: Partidos 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
He comprobado y recomprobado los scripts y que todo este correcto. Y me estoy volviendo loco. No tengo mucha experiencia con Hibernate, pero hasta donde llegan mis conocimientos lo que estoy haciendo es correcto. Me vendría bien una ayudita
Muchas gracias de antemano a todos ;)